view test/g120.ijs @ 0:e0bbaa717f41 draft default tip

lol J
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Mon, 25 Nov 2013 11:56:30 -0500
parents
children
line wrap: on
line source

NB. -y ------------------------------------------------------------------

'domain error' -: - etx 'abc'
'domain error' -: - etx ;:'sui generis'
'domain error' -: - etx <i.2 3


NB. x-y -----------------------------------------------------------------

4 = type 1234-5678
4 = type _1234-_5678
4 = type _2e9
8 = type ". x=: > IF64{'_2e9-3e8     ';'_9e18-1e18'
4 = type ". x=: > IF64{'0-_2147483647';'0-_9223372036854775807'
4 = type _2147483647-1
4 = type _2147483648
4 = type _1-_2147483648
8 = type ". x=: > IF64{'_2147483648-1';'_9223372036854775808-1'
8 = type ". x=: > IF64{'0-_2147483648';'0-_9223372036854775808'
8 = type ". x=: > IF64{' -_2147483648';' -_9223372036854775808'

_1 -: 3 - 4
2  -: 9.5 - 7.5

'domain error' -: 'abc' - etx 4
'domain error' -: 'abc' -~etx 4
'domain error' -: 4     - etx <'abc'
'domain error' -: 4     -~etx <'abc'

'length error' -: 3 4   - etx 5 6 7
'length error' -: 3 4   -~etx 5 6 7
'length error' -: 3 4   - etx i.5 6
'length error' -: 3 4   -~etx i.5 6
'length error' -: 3 4   - etx ?4 2$183164
'length error' -: 3 4   -~etx ?4 2$183164


NB. x-y integer overflow handling ---------------------------------------

test  =. - 0&=@:- -&((o.0)&+)
testa =. (-/   0&=@:- -/  @((o.0)&+))@,"0
testb =. (-/\  0&=@:- -/\ @((o.0)&+))@,"0
testc =. (-/\. 0&=@:- -/\.@((o.0)&+))@,"0
x     =. IF64{::  2147483647;  9223372036854775807
y     =. IF64{:: _2147483648; _9223372036854775808

8 4 4 4 4 = type&> _2 _1 0 1 2-&.> x
8 8 4 4 4 = type&> _2 _1 0 1 2-&.>~x
4 4 8 8 8 = type&> _2 _1 0 1 2-&.> y
4 4 4 8 8 = type&> _2 _1 0 1 2-&.>~y

8 4 4 4 4 = type&> _2 _1 0 1 2-/@,&.> x
8 8 4 4 4 = type&> _2 _1 0 1 2-/@,&.>~x
4 4 8 8 8 = type&> _2 _1 0 1 2-/@,&.> y
4 4 4 8 8 = type&> _2 _1 0 1 2-/@,&.>~y

8 4 4 4 4 = type&> _2 _1 0 1 2-/\@,&.> x
8 8 4 4 4 = type&> _2 _1 0 1 2-/\@,&.>~x
    8 8 8 = type&>       0 1 2-/\@,&.> y
      8 8 = type&>         1 2-/\@,&.>~y

8 4 4 4 4 = type&> _2 _1 0 1 2-/\.@,&.> x
8 8 4 4 4 = type&> _2 _1 0 1 2-/\.@,&.>~x
4 4 8 8 8 = type&> _2 _1 0 1 2-/\.@,&.> y
4 4 4 8 8 = type&> _2 _1 0 1 2-/\.@,&.>~y

,(2e9 2e9 _2e9 _2e9) test &>/ 1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) test &>/~1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testa&>/ 1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testa&>/~1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testb&>/ 1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testb&>/~1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testc&>/ 1e9 _1e9 1e9 _1e9
,(2e9 2e9 _2e9 _2e9) testc&>/~1e9 _1e9 1e9 _1e9

,_2 _1 0 1 2 test &>/ x,y
,_2 _1 0 1 2 test &>/~x,y
,_2 _1 0 1 2 testa&>/ x,y
,_2 _1 0 1 2 testa&>/~x,y
,_2 _1 0 1 2 testb&>/ x,y
,_2 _1 0 1 2 testb&>/~x,y
,_2 _1 0 1 2 testc&>/ x,y
,_2 _1 0 1 2 testc&>/~x,y

4!:55 ;:'test testa testb testc x y'