SingleBound |   | 16% | | n/a | 13 | 17 | 15 | 22 | 13 | 17 | 0 | 1 |
MultiConstraint |  | 0% |  | 0% | 9 | 9 | 19 | 19 | 5 | 5 | 1 | 1 |
CollectionConstraint |  | 0% |  | 0% | 6 | 6 | 11 | 11 | 5 | 5 | 1 | 1 |
SubCollectionConstraint |  | 0% |  | 0% | 6 | 6 | 11 | 11 | 5 | 5 | 1 | 1 |
ClassConstraint |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 3 | 3 | 1 | 1 |
ClassCollectionConstraint |  | 0% |  | 0% | 4 | 4 | 7 | 7 | 3 | 3 | 1 | 1 |
NumericConstraint |   | 84% | | n/a | 0 | 3 | 2 | 16 | 0 | 3 | 0 | 1 |
DualBound |   | 92% |  | 100% | 4 | 21 | 4 | 28 | 4 | 17 | 0 | 1 |
SingleBound.Bound |  | 100% | | n/a | 0 | 2 | 0 | 9 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
NumericConstraint.new NumericConstraint() {...} |  | 100% |  | 100% | 0 | 3 | 0 | 2 | 0 | 2 | 0 | 1 |
SingleBound.UpperBoundInclusive |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
SingleBound.LowerBoundExclusive |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
SingleBound.UpperBoundExclusive |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
SingleBound.LowerBoundInclusive |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 2 | 0 | 1 |
ConstraintInterface |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 | 0 | 1 |