Skip to content

Releases: mbj/mutant

v0.15.0

26 Feb 17:23
@mbj mbj
67f3d16

Choose a tag to compare

  • Add operator mutations.

    • #1523
      #1530
      Add arithmetic operator swap mutations (+-, */).
      Multiplication/division skips multiplicative identity operands.

    • #1532
      #1533
      Add %/ and *** mutations.

    • #1527
      Add ==!= swap mutation.

    • #1534
      Add logical operator swap mutations (andor, &&||).

    • #1535
      #1576
      Add compound assignment operator swap mutations
      (+=-=, *=/=, %=/=, **=*=,
      &=|=^=, <<=>>=, &&=||=).

  • Add selector replacement mutations.

    Orthogonal replacements (circular swaps):

    • #1559 select/filterreject
    • #1560 any?none?
    • #1561 takedrop
    • #1562 append/pushprepend/unshift
    • #1563 positive?negative?
    • #1564 zero?nonzero?
    • #1565 countsize/length
    • #1568 keysvalues
    • #1571 even?odd?, minmax, min_bymax_by
    • #1573 all?none?, floorceil,
      start_with?end_with?, transform_keystransform_values, upcasedowncase
    • #1576 popshift, each_keyeach_value,
      assocrassoc, succpred, charsbytes, empty?any?,
      grepgrep_v

    Semantic reductions:

    • #1542 Bang → non-bang methods
      (e.g. map!map, sort!sort, compact!compact).
    • #1567
      #1572 Enumerable reductions
      (collecteach, each_with_objecteach, each_with_indexeach,
      each_conseach, each_sliceeach, samplefirst/last,
      sort_bysort).
    • #1574 filter_mapmap,
      delete_ifreject, keep_ifselect, collect_concatcollect,
      chunk/chunk_while/slice_before/slice_after/slice_wheneach,
      striplstrip/rstrip, to_fto_i,
      defined?true, strip regexp m (multiline) flag.
  • #1558
    #1537

    Add pattern-matching mutation support. Dedicated mutators for case/in expressions,
    in patterns, match alternatives (A | B), and pattern match predicates
    (x in patternfalse). Guard clauses in pattern matches are now mutated.

  • #1555
    #1566

    Add control flow mutations. whileuntil orthogonal swap mutations.
    while_post and until_post support for begin...end while/begin...end until
    constructs.

  • #1539

    Add supersuper() mutation operators to test implicit vs explicit
    argument forwarding.

  • #1536

    Add rescue clause removal mutations. When multiple rescue clauses exist,
    emit mutations that remove each clause individually.

  • #1543

    Add inline rescue modifier mutations (foo rescue barbar).

  • #1556

    Add explicit ensure mutator with ensure-clause reduction.

  • #1526

    Add empty collection return value mutations (to_a[], to_h{},
    to_s"").

  • #1540

    Add type-aware default return mutations for method bodies
    (Array[], Hash{}, String"", Integer0, Float0.0).

  • #1544

    Add generic receiver promotion mutations for blocks (a.b { }a).

  • #1547

    Add non-empty string to empty string mutation.

  • #1557

    Add literal mutators for complex and rational numeric nodes.

  • #1553

    Add RSpec 4 support.

  • Dependency updates:

    • #1570
      Bump parser dependency to ~> 3.3.10 and unparser dependency to ~> 0.8.2.
  • #1550

    Fix bundler stability issue.

v0.14.2

20 Feb 23:47
@mbj mbj
905343d

Choose a tag to compare

What's Changed

  • Fix coverage percentage rounding up to 100% when mutations survive by @sferik in #1512
  • Change to allow builds by other peoples PRs by @mbj in #1513
  • Add visual progress bar for TTY output by @sferik in #1514
  • Add bitwise operator mutations by @sferik in #1516
  • Change version to v0.14.2 by @mbj in #1517
  • Add improved quick start documentation by @mbj in #1519
  • Fix readme badge by @mbj in #1520

Full Changelog: v0.14.1...v0.14.2