1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- project('plusassign', 'c')
- x = []
- x += 'a'
- if x.length() != 1
- error('Incorrect append')
- endif
- if x[0] != 'a'
- error('Incorrect append 2.')
- endif
- y = x
- x += 'b'
- if y.length() != 1
- error('Immutability broken.')
- endif
- if y[0] != 'a'
- error('Immutability broken 2.')
- endif
- if x.length() != 2
- error('Incorrect append 3')
- endif
- if x[0] != 'a'
- error('Incorrect append 4.')
- endif
- if x[1] != 'b'
- error('Incorrect append 5.')
- endif
- # Now with evil added: append yourself.
- x += x
- if x.length() != 4
- error('Incorrect selfappend.')
- endif
- # += on strings
- bra = 'bra'
- foo = 'A'
- foo += bra
- foo += 'cada'
- foo += bra
- assert (foo == 'Abracadabra', 'string += failure [@0@]'.format(foo))
- assert (bra == 'bra', 'string += modified right argument!')
- foo += ' ' + foo
- assert (foo == 'Abracadabra Abracadabra', 'string += failure [@0@]'.format(foo))
- # += on ints
- foo = 5
- foo += 6
- assert (foo == 11, 'int += failure [@0@]'.format(foo))
- bar = 99
- foo += bar
- assert (foo == 110, 'int += failure [@0@]'.format(foo))
- assert (bar == 99, 'int += modified right argument"')
- bar += foo + 1
- assert (bar == 210, 'int += failure [@0@]'.format(bar))
- assert (foo == 110, 'int += modified right argument"')
|