diff options
| author | Andrew Dalke <dalke@dalkescientific.com> | 2006-05-26 13:05:55 (GMT) | 
|---|---|---|
| committer | Andrew Dalke <dalke@dalkescientific.com> | 2006-05-26 13:05:55 (GMT) | 
| commit | 669fa188b13cccf0cff53d570d0d5371948bac11 (patch) | |
| tree | 01e19d6f195d9c99958aabc9518f7c16a746a6f0 /Lib/test/string_tests.py | |
| parent | 910a08f6da226b892b8bfdb69c61b80386627fd2 (diff) | |
| download | cpython-669fa188b13cccf0cff53d570d0d5371948bac11.zip cpython-669fa188b13cccf0cff53d570d0d5371948bac11.tar.gz cpython-669fa188b13cccf0cff53d570d0d5371948bac11.tar.bz2  | |
Added more rstrip tests, including for prealloc'ed arrays
Diffstat (limited to 'Lib/test/string_tests.py')
| -rw-r--r-- | Lib/test/string_tests.py | 55 | 
1 files changed, 54 insertions, 1 deletions
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index 3a97462..2469830 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -258,7 +258,7 @@ class CommonTest(unittest.TestCase):          aaa = ' a '*20          self.checkequal(['a']*20, aaa, 'split')          self.checkequal(['a'] + [aaa[4:]], aaa, 'split', None, 1) -        self.checkequal(['a']*19 + ["a "], aaa, 'split', None, 19) +        self.checkequal(['a']*19 + ['a '], aaa, 'split', None, 19)          # by a char          self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'split', '|') @@ -291,6 +291,10 @@ class CommonTest(unittest.TestCase):          self.checkequal(['a//b//c//d'], 'a//b//c//d', 'split', '//', 0)          self.checkequal(['a', '', 'b////c////d'], 'a////b////c////d', 'split', '//', 2)          self.checkequal(['endcase ', ''], 'endcase test', 'split', 'test') +        self.checkequal(['', ' begincase'], 'test begincase', 'split', 'test') +        self.checkequal(['', ' bothcase ', ''], 'test bothcase test', +                        'split', 'test') +        self.checkequal(['a', 'bc'], 'abbbc', 'split', 'bb')          self.checkequal(['', ''], 'aaa', 'split', 'aaa')          self.checkequal(['aaa'], 'aaa', 'split', 'aaa', 0)          self.checkequal(['ab', 'ab'], 'abbaab', 'split', 'ba') @@ -325,29 +329,74 @@ class CommonTest(unittest.TestCase):          self.checkequal(['a b', 'c', 'd'], 'a b c d', 'rsplit', None, 2)          self.checkequal(['a', 'b', 'c', 'd'], 'a b c d', 'rsplit', None, 3)          self.checkequal(['a', 'b', 'c', 'd'], 'a b c d', 'rsplit', None, 4) +        self.checkequal(['a', 'b', 'c', 'd'], 'a b c d', 'rsplit', None, +                        sys.maxint-20)          self.checkequal(['a b c d'], 'a b c d', 'rsplit', None, 0)          self.checkequal(['a  b', 'c', 'd'], 'a  b  c  d', 'rsplit', None, 2) +        self.checkequal([], '         ', 'rsplit') +        self.checkequal(['a'], '  a    ', 'rsplit') +        self.checkequal(['a', 'b'], '  a    b   ', 'rsplit') +        self.checkequal(['  a', 'b'], '  a    b   ', 'rsplit', None, 1) +        self.checkequal(['  a    b','c'], '  a    b   c   ', 'rsplit', +                        None, 1) +        self.checkequal(['  a', 'b', 'c'], '  a    b   c   ', 'rsplit', +                        None, 2) +        self.checkequal(['a', 'b'], '\n\ta \t\r b \v ', 'rsplit', None, 88) +        aaa = ' a '*20 +        self.checkequal(['a']*20, aaa, 'rsplit') +        self.checkequal([aaa[:-4]] + ['a'], aaa, 'rsplit', None, 1) +        self.checkequal([' a  a'] + ['a']*18, aaa, 'rsplit', None, 18) + +          # by a char          self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'rsplit', '|')          self.checkequal(['a|b|c', 'd'], 'a|b|c|d', 'rsplit', '|', 1)          self.checkequal(['a|b', 'c', 'd'], 'a|b|c|d', 'rsplit', '|', 2)          self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'rsplit', '|', 3)          self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'rsplit', '|', 4) +        self.checkequal(['a', 'b', 'c', 'd'], 'a|b|c|d', 'rsplit', '|', +                        sys.maxint-100)          self.checkequal(['a|b|c|d'], 'a|b|c|d', 'rsplit', '|', 0)          self.checkequal(['a||b||c', '', 'd'], 'a||b||c||d', 'rsplit', '|', 2)          self.checkequal(['', ' begincase'], '| begincase', 'rsplit', '|') +        self.checkequal(['endcase ', ''], 'endcase |', 'rsplit', '|') +        self.checkequal(['', 'bothcase', ''], '|bothcase|', 'rsplit', '|') +          self.checkequal(['a\x00\x00b', 'c', 'd'], 'a\x00\x00b\x00c\x00d', 'rsplit', '\x00', 2) +        self.checkequal(['a']*20, ('a|'*20)[:-1], 'rsplit', '|') +        self.checkequal(['a|a|a|a|a']+['a']*15, +                        ('a|'*20)[:-1], 'rsplit', '|', 15) +          # by string          self.checkequal(['a', 'b', 'c', 'd'], 'a//b//c//d', 'rsplit', '//')          self.checkequal(['a//b//c', 'd'], 'a//b//c//d', 'rsplit', '//', 1)          self.checkequal(['a//b', 'c', 'd'], 'a//b//c//d', 'rsplit', '//', 2)          self.checkequal(['a', 'b', 'c', 'd'], 'a//b//c//d', 'rsplit', '//', 3)          self.checkequal(['a', 'b', 'c', 'd'], 'a//b//c//d', 'rsplit', '//', 4) +        self.checkequal(['a', 'b', 'c', 'd'], 'a//b//c//d', 'rsplit', '//', +                        sys.maxint-5)          self.checkequal(['a//b//c//d'], 'a//b//c//d', 'rsplit', '//', 0)          self.checkequal(['a////b////c', '', 'd'], 'a////b////c////d', 'rsplit', '//', 2)          self.checkequal(['', ' begincase'], 'test begincase', 'rsplit', 'test') +        self.checkequal(['endcase ', ''], 'endcase test', 'rsplit', 'test') +        self.checkequal(['', ' bothcase ', ''], 'test bothcase test', +                        'rsplit', 'test') +        self.checkequal(['ab', 'c'], 'abbbc', 'rsplit', 'bb') +        self.checkequal(['', ''], 'aaa', 'rsplit', 'aaa') +        self.checkequal(['aaa'], 'aaa', 'rsplit', 'aaa', 0) +        self.checkequal(['ab', 'ab'], 'abbaab', 'rsplit', 'ba') +        self.checkequal(['aaaa'], 'aaaa', 'rsplit', 'aab') +        self.checkequal([''], '', 'rsplit', 'aaa') +        self.checkequal(['aa'], 'aa', 'rsplit', 'aaa') +        self.checkequal(['bbob', 'A'], 'bbobbbobbA', 'rsplit', 'bbobb') +        self.checkequal(['', 'B', 'A'], 'bbobbBbbobbA', 'rsplit', 'bbobb') + +        self.checkequal(['a']*20, ('aBLAH'*20)[:-4], 'rsplit', 'BLAH') +        self.checkequal(['a']*20, ('aBLAH'*20)[:-4], 'rsplit', 'BLAH', 19) +        self.checkequal(['aBLAHa'] + ['a']*18, ('aBLAH'*20)[:-4], +                        'rsplit', 'BLAH', 18)          # mixed use of str and unicode          self.checkequal([u'a b', u'c', u'd'], 'a b c d', 'rsplit', u' ', 2) @@ -355,6 +404,10 @@ class CommonTest(unittest.TestCase):          # argument type          self.checkraises(TypeError, 'hello', 'rsplit', 42, 42, 42) +        # null case +        self.checkraises(ValueError, 'hello', 'rsplit', '') +        self.checkraises(ValueError, 'hello', 'rsplit', '', 0) +      def test_strip(self):          self.checkequal('hello', '   hello   ', 'strip')          self.checkequal('hello   ', '   hello   ', 'lstrip')  | 
