Skip to content

Test: Refactor DeePKS Unit Tests#7577

Merged
mohanchen merged 2 commits into
deepmodeling:developfrom
AsTonyshment:deepks_td
Jul 2, 2026
Merged

Test: Refactor DeePKS Unit Tests#7577
mohanchen merged 2 commits into
deepmodeling:developfrom
AsTonyshment:deepks_td

Conversation

@AsTonyshment

Copy link
Copy Markdown
Collaborator

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 old 09_DeePKS_test1 path could pass in CI without running any DeePKS unit-test cases because it depended on Autotest1.sh and a missing CASES1 file.

  • Split the legacy monolithic test_deepks executable into individual DeePKS unit-test targets.
  • Register 28 DeePKS unit tests directly with CTest through the module AddTest() flow.
  • Move DeePKS unit-test fixtures into source/source_lcao/module_deepks/test/support/.
  • Remove the obsolete script-based DeePKS unit-test runner and its unused local test helpers.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread source/source_lcao/module_deepks/test/main_deepks.cpp Outdated
Comment thread source/source_lcao/module_deepks/test/deepks_test.cpp Outdated
Comment thread source/source_lcao/module_deepks/test/deepks_test_e_deltabands.cpp
Comment thread source/source_lcao/module_deepks/test/support/PP_ORB/C_gga_8au_100Ry_1s1p.orb Outdated
@mohanchen mohanchen added Refactor Refactor ABACUS codes Tests/Examples Issues/PR related to unit tests and integrate tests labels Jul 1, 2026

@mohanchen mohanchen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mohanchen mohanchen merged commit 548bf8f into deepmodeling:develop Jul 2, 2026
16 checks passed
@AsTonyshment AsTonyshment deleted the deepks_td branch July 2, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Refactor Refactor ABACUS codes Tests/Examples Issues/PR related to unit tests and integrate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Test: DeePKS unit test target passes in CI without running any test cases

3 participants