Skip to content

Commit ca968fb

Browse files
committed
Add run tests
1 parent 2fca994 commit ca968fb

2 files changed

Lines changed: 68 additions & 0 deletions

File tree

mypyc/test-data/run-bytes.test

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff 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]
138172
def test_bytes_slicing() -> None:
139173
b = b'abcdefg'

mypyc/test-data/run-strings.test

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff 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]
366400
from typing import Tuple
367401

0 commit comments

Comments
 (0)