File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -134,6 +134,40 @@ def test_ord_bytesarray() -> None:
134134 with assertRaises(TypeError):
135135 ord(bytearray(b''))
136136
137+ def test_multiply() -> None:
138+ # Use bytes() and int() to avoid constant folding
139+ b = b'ab' + bytes()
140+ zero = int()
141+ one = 1 + zero
142+ three = 3 + zero
143+ neg_one = -1 + zero
144+
145+ assert b * zero == b''
146+ assert b * one == b'ab'
147+ assert b * three == b'ababab'
148+ assert b * neg_one == b''
149+ assert zero * b == b''
150+ assert one * b == b'ab'
151+ assert three * b == b'ababab'
152+ assert neg_one * b == b''
153+
154+ # Test with empty bytes
155+ empty = bytes()
156+ five = 5 + zero
157+ assert empty * five == b''
158+ assert five * empty == b''
159+
160+ # Test with single byte
161+ single = b'\xff' + bytes()
162+ four = 4 + zero
163+ assert single * four == b'\xff\xff\xff\xff'
164+ assert four * single == b'\xff\xff\xff\xff'
165+
166+ # Test type preservation
167+ two = 2 + zero
168+ result = b * two
169+ assert type(result) == bytes
170+
137171[case testBytesSlicing]
138172def test_bytes_slicing() -> None:
139173 b = b'abcdefg'
Original file line number Diff line number Diff line change @@ -362,6 +362,40 @@ def test_str_min_max() -> None:
362362 assert max(x, y) == 'bbb'
363363 assert max(x, z) == 'aaa'
364364
365+ def test_multiply() -> None:
366+ # Use str() and int() to avoid constant folding
367+ s = 'ab' + str()
368+ zero = int()
369+ one = 1 + zero
370+ three = 3 + zero
371+ neg_one = -1 + zero
372+
373+ assert s * zero == ''
374+ assert s * one == 'ab'
375+ assert s * three == 'ababab'
376+ assert s * neg_one == ''
377+ assert zero * s == ''
378+ assert one * s == 'ab'
379+ assert three * s == 'ababab'
380+ assert neg_one * s == ''
381+
382+ # Test with empty string
383+ empty = str()
384+ five = 5 + zero
385+ assert empty * five == ''
386+ assert five * empty == ''
387+
388+ # Test with single character
389+ single = 'x' + str()
390+ four = 4 + zero
391+ assert single * four == 'xxxx'
392+ assert four * single == 'xxxx'
393+
394+ # Test type preservation
395+ two = 2 + zero
396+ result = s * two
397+ assert type(result) == str
398+
365399[case testStringFormattingCStyle]
366400from typing import Tuple
367401
You can’t perform that action at this time.
0 commit comments