"""
If the criteria for one outcome is the subset of another outcome,
the container will choose the outcome which has more child outcome
criteria satisfied. If both container outcomes have the same
number of satisfied criteria, the behavior is undefined.
"""
However, this did not seem to be implemented as such, instead it appears
the behavior was undefined regardless of the number of satisfied
criteria. This fixes the outcome_map handling such that a new outcome
from the map is only accepted if it satisfies strictly more child labels
than any previously consider outcome, thus satisfying the documented
behavior.
According to the documentation:
""" If the criteria for one outcome is the subset of another outcome, the container will choose the outcome which has more child outcome criteria satisfied. If both container outcomes have the same number of satisfied criteria, the behavior is undefined. """
However, this did not seem to be implemented as such, instead it appears the behavior was undefined regardless of the number of satisfied criteria. This fixes the outcome_map handling such that a new outcome from the map is only accepted if it satisfies strictly more child labels than any previously consider outcome, thus satisfying the documented behavior.