The unit of critical_angle depended on which function you called (#757)
* The unit of critical_angle depended on which function you called
#755 closed the bare names of the geometry. These are the compounds built
on the same words, and one of them is worse than anything the first pass
found: in weston_regimes.py, WestonRegimeBoundaries.critical_angle is in
radians and weston_regime_boundaries(critical_angle=...) one screen below
it takes degrees, while seabed_reflection.py has it in degrees again. The
same name, 57 times apart. The field is critical_angle_rad now and the two
overrides critical_angle_deg, which is what the function converts to
anyway.
The rest, read off each docstring: degrees for bank_angle, path_angle(s),
grazing_angle, launch_angles, arrival_angles, source_angle and
limiting_angle; radians for incidence_angle and angle_limit; metres for
the thirteen diameters; steradians for solid_angle; per second for
sound_speed_gradient; nepers per radian for reflection_loss_gradient and
its override. runway_gradient becomes runway_gradient_ratio, because its
own docstring says dimensionless.
Two public functions were caught by the sweep and put back:
critical_angle(c1, c2) and reflection_loss_gradient(seabed). The rule is
about parameters; what a function returns is said by its return type.
element_diameter and pitch_diameter stay bare in the guard's exemptions,
because the bearing formulae use them only as the ratio d/D.
The guard matches the geometric quantities as whole words inside a name
now, so critical_angle and duct_diameter are held to the rule and
triangles is not, and the two tuples of the first pass collapse into one.
No value changes: the same 995 conformance checks with the same numbers.
One clip is re-rendered, because its scene reaches the renamed parameters.
* The geometric conditions with a default are written by name too
The rule of #756 now reaches the names #755 and this branch renamed.
Thirteen more conditions carry a default and could still be passed as a
bare number.
piston_directivity_pattern and hydrophone_depths take a star before
their angle argument, which keeps the quantity the call is about
positional.
Nine result dataclasses take KW_ONLY after the fields they are about,
among them ApproachStep and DepartureStep, whose ANP steps were being
written as five numbers in a row against a column of sheet C-6.2.
* Say both halves of the rule in the guard's own docstring