| 621 | return self.expectations[1] |
| 622 | |
| 623 | def test(self, first, last): |
| 624 | assert isinstance(first, Occurrence) |
| 625 | assert isinstance(last, Occurrence) |
| 626 | |
| 627 | for first_reasons in self.first.test(first, last): |
| 628 | first_occs = first_reasons.values() |
| 629 | lower_bound = latest_of(first_occs).next |
| 630 | if lower_bound is not None: |
| 631 | for second_reasons in self.second.test(lower_bound, last): |
| 632 | reasons = second_reasons.copy() |
| 633 | reasons.update(first_reasons) |
| 634 | yield reasons |
| 635 | |
| 636 | @property |
| 637 | def has_lower_bound(self): |