Releases: foxbenjaminfox/mutare_decimal
Releases · foxbenjaminfox/mutare_decimal
Release list
v0.1.0
Initial release.
Added
- Eleven mutator families over the Decimal call surface, each reported under
its own name and independently enable-able:Mutare.Decimal.Arithmetic(:decimal_arithmetic) — swaps same-arity
arithmetic calls (add/sub/mult/div/div_int/rem) and reverses
visible operands of the non-commutative ones.Mutare.Decimal.Comparison(:decimal_comparison) — swaps comparison
predicates (gt?/gte?/lt?/lte?),min/max, and reverses operands
ofcompare/2,3and the deprecatedcmp/2.Mutare.Decimal.Classification(:decimal_classification) — swaps
classification predicates (positive?↔negative?,nan?↔inf?).Mutare.Decimal.ZeroBoundary(:decimal_zero_boundary) — replaces
positive?/negative?with inclusive zero-boundary comparisons.Mutare.Decimal.Sign(:decimal_sign) — swapsabs/1↔negate/1and
flips literal signs inDecimal.new/3.Mutare.Decimal.DivRem(:decimal_div_rem) — rebuildsdiv_rem/2with
the quotient/remainder pair in the wrong tuple order.Mutare.Decimal.Transform(:decimal_transform) — removes
value-transforming calls (normalize,apply_context,abs,negate,
sqrt,round/1,2,3).Mutare.Decimal.ModeSwap(:decimal_mode_swap) — swapsround/3
rounding modes andto_string/2,3output formats.Mutare.Decimal.DefaultDrop(:decimal_default_drop) — drops
refinement/default arguments (round/2,3,compare/3,eq?/3).Mutare.Decimal.LimitsDrop(:decimal_limits_drop) — drops
parsing/rendering limit arguments (parse/2,cast/2,new/2,
to_string/2,3).Mutare.Decimal.Context(:decimal_context) — removes
Decimal.Context.with/set/updateeffects.
- Calls match written qualified, aliased, imported, or as a pipe stage.
- Ignore-variant labels on every mutation (target operation, mode, dropped
argument, or operation kind), so# mutare:ignore[family:label]can
suppress a single variant. Mutare.Decimal.all/0for splicing all families into a:mutatorslist.
Supports Decimal >= 2.2.0 and < 4.0.0.