Skip to content

fix: size legacy RDF bins from the smallest box edge - #199

Open
galjos wants to merge 1 commit into
devfrom
fix/rdf-histogram-range
Open

fix: size legacy RDF bins from the smallest box edge#199
galjos wants to merge 1 commit into
devfrom
fix/rdf-histogram-range

Conversation

@galjos

@galjos galjos commented Aug 24, 2026

Copy link
Copy Markdown
Member

The legacy bin setup used the largest box edge while both kernels cut off at half the smallest edge, so for non-cubic boxes the histogram carried structurally empty tail bins and the differential column fabricated values over a range the kernel never counted. Both reductions now use min, matching _infer_r_max and the kernels.

The added test pins a hand-computed two-atom expectation in a 20x20x60 box for both the Python and compiled kernels. The cubic parity SHA256 fixtures are unchanged.

Fixes #198.

The legacy bin setup derived the bin count from the largest box
edge while both histogram kernels discard every pair beyond half
the smallest edge. For non-cubic boxes this emitted a tail of bins
that could never be filled and normalized the curve over a range
the kernels never count, fabricating zero g(r) rows and large
negative pair-count residuals. Deriving the count from the global
minimum edge matches the kernel cutoff and the general path; cubic
parity fixtures are unaffected.
@galjos
galjos requested a review from 97gamjak August 24, 2026 07:29
@github-actions

Copy link
Copy Markdown
Contributor

PYLINT REPORT

Your code has been rated at 9.78/10

Full report

Raw metrics

type number % previous difference
code 15654 45.61 NC NC
docstring 13049 38.02 NC NC
comment 463 1.35 NC NC
empty 5156 15.02 NC NC

Duplication

now previous difference
nb duplicated lines 0 NC NC
percent duplicated lines 0.000 NC NC

Messages by category

type number previous difference
convention 15 NC NC
refactor 135 NC NC
warning 17 NC NC
error 5 NC NC

% errors / warnings by module

module error warning refactor convention
PQAnalysis.type_checking 40.00 0.00 0.00 0.00
PQAnalysis.atomic_system.atomic_system 20.00 11.76 6.67 0.00
PQAnalysis.analysis.vibrational.vibrational_analysis 20.00 0.00 7.41 0.00
PQAnalysis 20.00 0.00 0.00 0.00
PQAnalysis.analysis.vacf._vacf_kernel_py 0.00 11.76 1.48 0.00
PQAnalysis.tools.traj_to_com_traj 0.00 11.76 0.00 0.00
PQAnalysis.io.traj_file._process_lines_py 0.00 11.76 0.00 0.00
PQAnalysis.io.moldescriptor_reader 0.00 11.76 0.00 0.00
PQAnalysis.tools.add_molecule 0.00 5.88 4.44 0.00
PQAnalysis.analysis.rdf._rdf_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.analysis.msd._msd_kernel_py 0.00 5.88 2.22 0.00
PQAnalysis.io.conversion_api 0.00 5.88 1.48 0.00
PQAnalysis.version 0.00 5.88 0.00 0.00
PQAnalysis.utils.custom_logging 0.00 5.88 0.00 0.00
PQAnalysis.io.write_api 0.00 5.88 0.00 0.00
PQAnalysis.io.restart_file.restart_writer 0.00 0.00 14.81 0.00
PQAnalysis.analysis.rdf.rdf 0.00 0.00 6.67 6.67
PQAnalysis.analysis.msd.msd 0.00 0.00 5.93 33.33
PQAnalysis.io.nep.nep_writer 0.00 0.00 5.19 6.67
PQAnalysis.analysis.vacf.vacf 0.00 0.00 4.44 13.33
PQAnalysis.io.traj_file._slab_parser_py 0.00 0.00 3.70 0.00
PQAnalysis.analysis.vacf.spectrum 0.00 0.00 3.70 0.00
PQAnalysis.io.traj_file.trajectory_reader 0.00 0.00 2.96 0.00
PQAnalysis.topology.bonded_topology.dihedral 0.00 0.00 2.22 0.00
PQAnalysis.core.residue 0.00 0.00 2.22 0.00
PQAnalysis.topology.bonded_topology.bonded_topology 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.bond 0.00 0.00 1.48 0.00
PQAnalysis.topology.bonded_topology.angle 0.00 0.00 1.48 0.00
PQAnalysis.io.traj_file.raw_frame_reader 0.00 0.00 1.48 0.00
PQAnalysis.core.cell.cell 0.00 0.00 1.48 0.00
PQAnalysis.atomic_system._standard_properties 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vacf.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.spectrum_broadening.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.momentum.api 0.00 0.00 1.48 0.00
PQAnalysis.analysis.vibrational.vibrational_input_file_reader 0.00 0.00 0.74 6.67
PQAnalysis.traj.formats 0.00 0.00 0.74 0.00
PQAnalysis.topology.topology 0.00 0.00 0.74 0.00
PQAnalysis.topology.selection 0.00 0.00 0.74 0.00
PQAnalysis.io.traj_file.frame_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.restart_file.restart_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq_analysis._parse 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.pq.pq_input_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.input_file_reader.input_file_parser 0.00 0.00 0.74 0.00
PQAnalysis.io.info_file_reader 0.00 0.00 0.74 0.00
PQAnalysis.io.formats 0.00 0.00 0.74 0.00
PQAnalysis.analysis.momentum.momentum 0.00 0.00 0.74 0.00
PQAnalysis.core.atom.element 0.00 0.00 0.00 13.33
PQAnalysis.analysis.vacf.vacf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.rdf.rdf_input_file_reader 0.00 0.00 0.00 6.67
PQAnalysis.analysis.msd.msd_input_file_reader 0.00 0.00 0.00 6.67

Messages

message id occurrences
too-many-positional-arguments 29
too-many-arguments 29
duplicate-code 20
too-many-locals 15
too-many-instance-attributes 13
invalid-name 12
too-complex 9
inconsistent-return-statements 8
fixme 7
too-many-branches 5
missing-type-doc 4
too-many-return-statements 3
too-many-lines 3
unused-import 2
too-many-statements 2
redefined-builtin 2
missing-kwoa 2
use-set-for-membership 1
unexpected-keyword-arg 1
too-many-public-methods 1
possibly-used-before-assignment 1
no-member 1
missing-param-doc 1
arguments-differ 1

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.94%. Comparing base (0961625) to head (4d83948).

Additional details and impacted files
@@           Coverage Diff           @@
##              dev     #199   +/-   ##
=======================================
  Coverage   93.94%   93.94%           
=======================================
  Files         177      177           
  Lines        9227     9227           
=======================================
  Hits         8668     8668           
  Misses        559      559           
Flag Coverage Δ
unittests 93.94% <100.00%> (ø)
Files with missing lines Coverage Δ
PQAnalysis/analysis/rdf/rdf.py 99.50% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant