def test_mismatch_and_two_too_many_matchers(self):
     self.assertMismatchWithDescriptionMatching(
         [3, 4], MatchesSetwise(Equals(0), Equals(1), Equals(2), Equals(3)),
         MatchesRegex(
             '.*There was 1 mismatch and 2 extra matchers: '
             r'Equals\([012]\), Equals\([012]\)', re.S))
 def test_mismatch_and_two_too_many_values(self):
     self.assertMismatchWithDescriptionMatching(
         [2, 3, 4, 5], MatchesSetwise(Equals(1), Equals(2)),
         MatchesRegex(
             r'.*There was 1 mismatch and 2 extra values: \[[145], [145]\]',
             re.S))
 def test_two_too_many_values(self):
     self.assertMismatchWithDescriptionMatching(
         [1, 2, 3, 4], MatchesSetwise(Equals(1), Equals(2)),
         MatchesRegex(r'There were 2 values left over: \[[34], [34]\]'))
 def test_mismatch_and_too_many_matchers(self):
     self.assertMismatchWithDescriptionMatching(
         [2, 3], MatchesSetwise(Equals(0), Equals(1), Equals(2)),
         MatchesRegex(
             r'.*There was 1 mismatch and 1 extra matcher: Equals\([01]\)',
             re.S))
 def test_two_too_many_matchers(self):
     self.assertMismatchWithDescriptionMatching(
         [3], MatchesSetwise(Equals(1), Equals(2), Equals(3)),
         MatchesRegex(r'There were 2 matchers left over: Equals\([12]\), '
                      r'Equals\([12]\)'))
 def test_too_many_values(self):
     self.assertMismatchWithDescriptionMatching(
         [1, 2, 3], MatchesSetwise(Equals(1), Equals(2)),
         Equals('There was 1 value left over: [3]'))
 def test_too_many_matchers(self):
     self.assertMismatchWithDescriptionMatching(
         [2, 3], MatchesSetwise(Equals(1), Equals(2), Equals(3)),
         Equals('There was 1 matcher left over: Equals(1)'))
 def test_mismatches(self):
     self.assertMismatchWithDescriptionMatching(
         [2, 3], MatchesSetwise(Equals(1), Equals(2)),
         MatchesRegex('.*There was 1 mismatch$', re.S))
 def test_matches(self):
     self.assertIs(None, MatchesSetwise(Equals(1), Equals(2)).match([2, 1]))