Test: Refactor DeePKS Unit Tests#7577
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors DeePKS unit tests to run as standard GTest/CTest module tests (via AddTest()), replacing the legacy script-driven 09_DeePKS_test1 path that could pass CI without executing any unit-test checks. It also reorganizes DeePKS test fixtures/reference outputs under module_deepks/test/support/ and removes obsolete standalone build artifacts.
Changes:
- Removes
09_DeePKS_test1*CTest entries and deletes the script-based runner (Autotest1.sh) that could silently skip cases. - Splits the former monolithic DeePKS test executable into multiple
AddTest()-registered GTest executables, parameterized by check + case directory. - Moves/introduces DeePKS unit-test fixtures and reference outputs under
source/source_lcao/module_deepks/test/support/.
Reviewed changes
Copilot reviewed 39 out of 102 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/09_DeePKS/CMakeLists.txt | Removes legacy unit-test registration through Autotest1.sh. |
| tests/09_DeePKS/Autotest1.sh | Deletes obsolete script runner that could skip all cases and still exit 0. |
| source/source_lcao/module_deepks/test/support/.gitignore | Ensures reference .dat files under support/ are not ignored despite global *.dat ignore. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/STRU | Updates pseudopotential/orbital relative paths for relocated fixtures. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/INPUT | Adds case-level INPUT controlling gamma-only behavior for the test runner. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/KPT | Adds k-point definition for the NO_KP (multi-k) fixture. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/stress_delta_ref.dat | Adds reference output for stress-delta check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/phialpha_ref.dat | Adds reference output for phialpha check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/pdm_ref.dat | Adds reference output for projected density matrix check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/orbpre_ref.dat | Adds reference output for orbital-precalc check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/o_delta_ref.dat | Adds reference output for o-delta check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/iRmat_ref.dat | Adds reference output for iRmat check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvx_ref.dat | Adds reference output for gvx check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gvepsl_ref.dat | Adds reference output for gvepsl check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/gedm_ref.dat | Adds reference output for gedm check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/F_delta_ref.dat | Adds reference output for F-delta check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_ref.dat | Adds reference output for E-delta check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/E_delta_bands_ref.dat | Adds reference output for E-delta bands check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_x_ref.dat | Adds reference output for dphialpha-x check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_y_ref.dat | Adds reference output for dphialpha-y check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dphialpha_z_ref.dat | Adds reference output for dphialpha-z check. |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_0 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_1 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_2 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_3 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_4 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_5 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_6 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_7 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/dm_8 | Adds density-matrix input fixture (k-resolved). |
| source/source_lcao/module_deepks/test/support/NO_KP_deepks_UT/descriptor_ref.dat | Adds reference output for descriptor check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/STRU | Updates pseudopotential/orbital relative paths for relocated fixtures. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/INPUT | Adds case-level INPUT controlling gamma-only behavior for the test runner. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/KPT | Adds k-point definition for the gamma-only fixture. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/stress_delta_ref.dat | Adds reference output for stress-delta check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/phialpha_ref.dat | Adds reference output for phialpha check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/pdm_ref.dat | Adds reference output for projected density matrix check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/orbpre_ref.dat | Adds reference output for orbital-precalc check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/o_delta_ref.dat | Adds reference output for o-delta check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/iRmat_ref.dat | Adds reference output for iRmat check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gvepsl_ref.dat | Adds reference output for gvepsl check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/gedm_ref.dat | Adds reference output for gedm check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/F_delta_ref.dat | Adds reference output for F-delta check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_ref.dat | Adds reference output for E-delta check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/E_delta_bands_ref.dat | Adds reference output for E-delta bands check. |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/dm | Adds density-matrix input fixture (gamma-only). |
| source/source_lcao/module_deepks/test/support/NO_GO_deepks_UT/descriptor_ref.dat | Adds reference output for descriptor check. |
| source/source_lcao/module_deepks/test/parallel_orbitals.h | Removes legacy local copy of parallel-orbital helper (no longer needed). |
| source/source_lcao/module_deepks/test/klist.h | Removes legacy local copy of klist helper (switches to shared source_cell/klist.h). |
| source/source_lcao/module_deepks/test/Makefile.Objects | Removes obsolete standalone Makefile build artifacts for the old test executable. |
| source/source_lcao/module_deepks/test/Makefile | Removes obsolete standalone Makefile build artifacts for the old test executable. |
| source/source_lcao/module_deepks/test/mock_tdinfo.cpp | Reformats/adjusts TD_info mock and keeps required static definitions. |
| source/source_lcao/module_deepks/test/mock_berryphase.cpp | Adds berryphase static definition for linkability in unit tests. |
| source/source_lcao/module_deepks/test/main_deepks.cpp | Replaces legacy “run checks via custom main” with a GTest-based harness and per-check runner dispatch. |
| source/source_lcao/module_deepks/test/deepks_test.h | Refactors test fixture to use shared klist and modernizes state used across split test targets. |
| source/source_lcao/module_deepks/test/deepks_test.cpp | Adds reference-file comparison helper and defines shared GridD instance. |
| source/source_lcao/module_deepks/test/deepks_test_runner.h | Introduces shared “build dependencies then run check” helpers to reduce duplication across split tests. |
| source/source_lcao/module_deepks/test/deepks_test_prep.cpp | Refactors DeePKS unit-test preparation with stronger assertions and explicit parameter setup. |
| source/source_lcao/module_deepks/test/deepks_test_phialpha.cpp | Adds standalone phialpha unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_pdm.cpp | Adds standalone PDM unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_descriptor.cpp | Adds standalone descriptor unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_gdmx.cpp | Adds standalone gdmx unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_gvx.cpp | Adds standalone gvx unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_gdmepsl.cpp | Adds standalone gdmepsl unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_gvepsl.cpp | Adds standalone gvepsl unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_orbpre.cpp | Adds standalone orbpre unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_vdpre.cpp | Adds standalone vdpre unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_vdrpre.cpp | Adds standalone vdrpre unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_edelta.cpp | Adds standalone edelta unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_e_deltabands.cpp | Adds standalone e_deltabands unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_force_stress_delta.cpp | Adds standalone force/stress-delta unit-test runner target logic. |
| source/source_lcao/module_deepks/test/deepks_test_o_delta.cpp | Adds standalone o-delta unit-test runner target logic. |
| source/source_lcao/module_deepks/test/CMakeLists.txt | Registers 28 DeePKS unit tests via AddTest() and wires per-check/per-case compile definitions. |
| .gitignore | Ignores test.sum artifacts in repository root. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
mohanchen
reviewed
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linked Issue
Fix #7573
Changes
This PR refactors the DeePKS unit tests so they are registered and executed as normal GTest/CTest module tests through
AddTest(). The old09_DeePKS_test1path could pass in CI without running any DeePKS unit-test cases because it depended onAutotest1.shand a missingCASES1file.test_deepksexecutable into individual DeePKS unit-test targets.AddTest()flow.source/source_lcao/module_deepks/test/support/.