Results for ysh-expr-arith.test.sh

statusoshosh_ALT
pass 2121
FAIL 66
total2727
caseoshosh_ALTdescription
0pass pass Minus operator is left associative
1pass pass Division operators are left associative
2pass pass Exponentiation is right associative
3FAIL FAIL Binary operators, with conversions from string
detailsdetails
4pass pass Floating Point Division with /
5FAIL FAIL Operations That Convert to Integer: // % **
detailsdetails
6pass pass Division by zero
7pass pass Unary Operations
8FAIL FAIL unary minus on strings
detailsdetails
9FAIL FAIL unary ~ complement on strings
detailsdetails
10pass pass unary ~ doesn't work on bool
11pass pass unary ~ doesn't work on float
12pass pass unary - applied to bool is not allowed
13pass pass Big float constants becomes inf and -inf, tiny become 0.0 and -0.0
14FAIL FAIL Int constants bigger than 64 bits
detailsdetails
15pass pass Bit shift by negative number is not allowed
16FAIL FAIL 64-bit operations
detailsdetails
17pass pass 64-bit integer doesn't overflow
18pass pass Integer literals
19pass pass Integer literals with underscores
20pass pass Exponentiation with **
21pass pass Float Division
22pass pass Integer Division (rounds toward zero)
23pass pass % operator is remainder
24pass pass Bitwise logical
25pass pass Shift operators
26pass pass multiline strings, list, tuple syntax for list, etc.
42 passed, 0 OK, 0 not implemented, 0 BUG, 6 failed, 0 timeouts, 0 cases skipped
6 failed under osh

Details on runs that didn't PASS

osh3 Binary operators, with conversions from string

[osh stdout] Expected ' i i 3\nsi i 3\n i si 3\n---\n f f 1.0\nsf f 1.0\n f sf 1.0\n---\n i f 6.0\nsi f 6.0\n i sf 6.0\n---\n f i 2.5\nsf i 2.5\n f si 2.5\n' Got ' i i 3\n'
[osh status] Expected 0, got 1

stdout:
 i  i 3
stderr:
  echo 'si  i' $['1' + 2]
               ^~
[ stdin ]:2: fatal: Integer too big: 1
osh_ALT3 Binary operators, with conversions from string

[osh_ALT stdout] Expected ' i i 3\nsi i 3\n i si 3\n---\n f f 1.0\nsf f 1.0\n f sf 1.0\n---\n i f 6.0\nsi f 6.0\n i sf 6.0\n---\n f i 2.5\nsf i 2.5\n f si 2.5\n' Got ' i i 3\n'
[osh_ALT status] Expected 0, got 1

stdout:
 i  i 3
stderr:
  echo 'si  i' $['1' + 2]
               ^~
[ stdin ]:2: fatal: Integer too big: 1
osh5 Operations That Convert to Integer: // % **

[osh stdout] Expected '2\n1\n25\n_status 3\n_status 3\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
  var m = ' 5 ' // 2
                ^~
[ stdin ]:3: fatal: Integer too big:  5 
osh_ALT5 Operations That Convert to Integer: // % **

[osh_ALT stdout] Expected '2\n1\n25\n_status 3\n_status 3\n', got ''
[osh_ALT status] Expected 0, got 1

stdout:
stderr: 
  var m = ' 5 ' // 2
                ^~
[ stdin ]:3: fatal: Integer too big:  5 
osh8 unary minus on strings

[osh stdout] Expected '-3\n-4\n-5.5\n', got '-3\n'
[osh status] Expected 3, got 1

stdout:
-3
stderr:
  json write (-'4')
  ^~~~
[ stdin ]:2: fatal: Integer too big: 4
osh_ALT8 unary minus on strings

[osh_ALT stdout] Expected '-3\n-4\n-5.5\n', got '-3\n'
[osh_ALT status] Expected 3, got 1

stdout:
-3
stderr:
  json write (-'4')
  ^~~~
[ stdin ]:2: fatal: Integer too big: 4
osh9 unary ~ complement on strings

[osh stdout] Expected '-1\n-2\n-3\n', got '-1\n'
[osh status] Expected 3, got 1

stdout:
-1
stderr:
  json write (~'1')
              ^
[ stdin ]:2: fatal: Integer too big: 1
osh_ALT9 unary ~ complement on strings

[osh_ALT stdout] Expected '-1\n-2\n-3\n', got '-1\n'
[osh_ALT status] Expected 3, got 1

stdout:
-1
stderr:
  json write (~'1')
              ^
[ stdin ]:2: fatal: Integer too big: 1
osh14 Int constants bigger than 64 bits

[osh stdout] Expected '(Int) 1111\ndec=0\ndec=2\n(Int) 3\nbin=0\nbin=2\n(Int) 63\noct=0\noct=2\n(Int) 255\nhex=0\nhex=2\n' Got '(Int) 1111\ndec=0\n(Int) 111122223333444455556666\ndec=0\n(Int) 3\nbin=0\n(Int) 4722366482869645213695\nbin=0\n(Int) 63\noct=0\n(Int) 674788526559709289910\noct=0\n(Int) 255\nhex=0\n(Int) 52818855605794001074506366975\nhex=0\n'

stdout:
(Int)   1111
dec=0
(Int)   111122223333444455556666
dec=0
(Int)   3
bin=0
(Int)   4722366482869645213695
bin=0
(Int)   63
oct=0
(Int)   674788526559709289910
oct=0
(Int)   255
hex=0
(Int)   52818855605794001074506366975
hex=0
stderr:
osh_ALT14 Int constants bigger than 64 bits

[osh_ALT stdout] Expected '(Int) 1111\ndec=0\ndec=2\n(Int) 3\nbin=0\nbin=2\n(Int) 63\noct=0\noct=2\n(Int) 255\nhex=0\nhex=2\n' Got '(Int) 1111\ndec=0\n(Int) 111122223333444455556666\ndec=0\n(Int) 3\nbin=0\n(Int) 4722366482869645213695\nbin=0\n(Int) 63\noct=0\n(Int) 674788526559709289910\noct=0\n(Int) 255\nhex=0\n(Int) 52818855605794001074506366975\nhex=0\n'

stdout:
(Int)   1111
dec=0
(Int)   111122223333444455556666
dec=0
(Int)   3
bin=0
(Int)   4722366482869645213695
bin=0
(Int)   63
oct=0
(Int)   674788526559709289910
oct=0
(Int)   255
hex=0
(Int)   52818855605794001074506366975
hex=0
stderr:
osh16 64-bit operations

[osh stdout] Expected 'i = 4294967296, s = 4294967296\nequal\n', got 'i = 4294967296, s = 4294967296\n'
[osh status] Expected 0, got 1

stdout:
i = 4294967296, s = 4294967296
stderr:
  if (s ~== i) {
        ^~~
[ stdin ]:8: fatal: Integer too big
osh_ALT16 64-bit operations

[osh_ALT stdout] Expected 'i = 4294967296, s = 4294967296\nequal\n', got 'i = 4294967296, s = 4294967296\n'
[osh_ALT status] Expected 0, got 1

stdout:
i = 4294967296, s = 4294967296
stderr:
  if (s ~== i) {
        ^~~
[ stdin ]:8: fatal: Integer too big