Skip to content

cluster_analysis: fix fractal_dimension missing-dr error and docs (bug-sweep #51)#5374

Draft
RudolfWeeber wants to merge 1 commit into
espressomd:pythonfrom
RudolfWeeber:fix/bug-51-fractaldim-dr-default
Draft

cluster_analysis: fix fractal_dimension missing-dr error and docs (bug-sweep #51)#5374
RudolfWeeber wants to merge 1 commit into
espressomd:pythonfrom
RudolfWeeber:fix/bug-51-fractaldim-dr-default

Conversation

@RudolfWeeber

Copy link
Copy Markdown
Contributor

The Cluster docstring advertised fractal_dimension(dr=None), but dr is a
mandatory parameter (the histogram bin increment) and no layer materializes
a default. Calling fractal_dimension() with no argument made the script
interface do an unconditional parameters.at("dr"), throwing an opaque
std::out_of_range that surfaced to Python as 'IndexError: unordered_map::at'.

Fix:

  • Cluster.hpp: use the named get_value overload get_value(parameters,
    "dr") so an omitted dr raises the standard, friendly
    Exception("Parameter 'dr' is missing.") instead of an opaque
    std::out_of_range.
  • cluster_analysis.py: correct the docstring signature to
    fractal_dimension(dr), removing the false promise of an optional/None
    default.

Adds a regression test (test_fractal_dimension_requires_dr) asserting that
omitting dr raises the friendly 'Parameter dr is missing' error and that
dr=None raises a clear 'not convertible to double' conversion error.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

🤖 Generated with Claude Code

…g-sweep #51)

The Cluster docstring advertised fractal_dimension(dr=None), but dr is a
mandatory parameter (the histogram bin increment) and no layer materializes
a default. Calling fractal_dimension() with no argument made the script
interface do an unconditional parameters.at("dr"), throwing an opaque
std::out_of_range that surfaced to Python as 'IndexError: unordered_map::at'.

Fix:
- Cluster.hpp: use the named get_value overload get_value<double>(parameters,
  "dr") so an omitted dr raises the standard, friendly
  Exception("Parameter 'dr' is missing.") instead of an opaque
  std::out_of_range.
- cluster_analysis.py: correct the docstring signature to
  fractal_dimension(dr), removing the false promise of an optional/None
  default.

Adds a regression test (test_fractal_dimension_requires_dr) asserting that
omitting dr raises the friendly 'Parameter dr is missing' error and that
dr=None raises a clear 'not convertible to double' conversion error.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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