diff test/g422.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 diff
new file mode 100644
--- /dev/null
+++ b/test/g422.ijs
@@ -0,0 +1,330 @@
+NB. /:y -----------------------------------------------------------------
+
+NB. Boolean
+a =: 1=?10 5$2
+i =: /:a
+k =: ?10$5
+i =&# a
+(/:~i)  -: i. #a
+(/:k#a) -: ;i{(i.&.>k)+&.>+/\}:0,k
+(,0)    -: /:0
+''      -: /:(0,?(?5)$10)$0
+(i.#a)  -: /:a =: ((?10),0)$0
+(/:a)   -: /:,.~a=:?400$2
+(/:a)   -: /:,.~a=:?  1$2
+((+/a=/0 1)#0 1) -: /:~a=:?1000$2
+
+f=: 3 : 0 " 0
+ a=: (1000,y) ?@$ 2
+ k=: (#a) ?@$ 5
+ i=: /:a
+ assert. i -: /:a{'01'
+ assert. i -: /: #.a
+ assert. (/:k#a) -: ; i { (i.&.>k)+&.>+/\}:0,k
+ 1
+)
+
+f >: i.16
+
+NB. literal
+a =: a.{~32+?10 5$95
+i =: /:a
+k =: ?10$5
+i =&# a
+(/:~i)  -: i.#a
+(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k
+(,0)    -: /:'g'
+''      -: /:(0,?(?5)$10)$0
+(i.#a)  -: /:a =: ((?10),0)$0
+(/:a)   -: /:,.~ a=:a.{~?400$256
+(/:a)   -: /:,.~ a=:a.{~?1  $256
+((+/x=/  a.)#  a.) -: /:~x=:a.{~?1000$#a.
+
+f=: 3 : 0 " 0
+ a=: a.{~(1000,y) ?@$ #a.
+ k=: (#a) ?@$ 5
+ assert. (/:k#a) -: ; (/:a) { (i.&.>k)+&.>+/\}:0,k
+ 1
+)
+
+f >:i.16
+
+NB. integer
+a =: ?10 5$100
+i =: /:a
+k =: ?10$5
+i=&#a
+(/:~i)  -: i.#a
+(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k
+(,0)    -: /:5
+''      -: /:(0,?(?5)$10)$5
+(i.#a)  -: /:a =: ((?10),0)$5
+*./a>:}:0, a=:/:~?1000$1e2
+*./a>:}:0, a=:/:~?1000$1e3
+*./a>:}:0, a=:/:~?1000$1e4
+*./a>:}:0, a=:/:~?1000$1e9
+(/: 100#.a) -: /: a=: ?1000 2$100
+(/: 100#.a) -: /: a=: ?1000 2$  5
+
+a=: (--:m) + 1000 ?@$ m=:IF64{2e9 9e18
+y=: (/:a) { a
+*./ (}:y) <: }.y
+
+m=:<._1+2^31
+1 0 -: /: m,0
+0 1 -: /: 0,m
+m=:<.-2^31
+0 1 -: /: m,0
+1 0 -: /: 0,m
+
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.1
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.2
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.3
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.4
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.5
+((i.!#a) A. i.#a) (/:@[ -: /:@:{)"1 2 a=: 88#"0 i.6
+
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?1 8$5e6
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?2 8$5e6
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?3 8$5e6
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?4 8$5e6
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?5 8$5e6
+((i.!#a) A. i.#a) (] -: /:~@:{)"1 2 a=: /:~ (88$8),"1?6 8$5e6
+
+f=: 3 : 0 " 0
+ a=: (100,y) ?@$ 200
+ k=: (#a) ?@$ 5
+ assert. (/:k#a) -: ; (/:a) { (i.&.>k)+&.>+/\}:0,k
+ 1
+)
+
+f >: i.16
+
+(/:v) -: /: a.{~        v=:         ?10000$#a.
+(/:v) -: /: a.{~        v=:         ?66000$#a.
+
+(/:v) -: /: a.{~ 2000 + v=: _2000 + ?10000$#a.
+(/:v) -: /: a.{~ 2000 + v=: _2000 + ?66000$#a.
+
+(/:v) -: /: a.{~  128 + v=: _128  + ?10000$#a.
+(/:v) -: /: a.{~  128 + v=: _128  + ?66000$#a.
+
+(/:"1 v) -: /:"1 a.{~        v=:         ?2 3 10000$#a.
+(/:"1 v) -: /:"1 a.{~        v=:         ?2 3 66000$#a.
+
+(/:"1 v) -: /:"1 a.{~ 2000 + v=: _2000 + ?2 3 10000$#a.
+(/:"1 v) -: /:"1 a.{~ 2000 + v=: _2000 + ?2 3 66000$#a.
+
+(/:"1 v) -: /:"1 a.{~  128 + v=:  _128 + ?2 3 10000$#a.
+(/:"1 v) -: /:"1 a.{~  128 + v=:  _128 + ?2 3 66000$#a.
+
+(/:v) -: /: o. v=: (?~20000){(?10000$65536),32768*?10000$65536
+(/:v) -: /: (-#v){.0 (3!:3) v
+
+NB. floating point
+a =: o._40+?10 5$100
+i =: /:a
+k =: ?10$5
+i =&# a
+(/:~i)  -: i.#a
+(/:k#a) -: ;i{(i.&.>k)+&.>+/\_1}.0,k
+(,0)    -: /:2.718
+''      -: /:(0,?(?5)$10)$3.14
+(i.#x)  -: /:x=: ((?10),0)$3.14
+*./x>:}:0, x=:/:~o.?1000$1e2
+
+v=:?100$25
+(/:v) -: /:v-25
+(/:v) -: /:v+100
+(/:v) -: /:o.v
+(/:v) -: /:,.~v
+
+(/:v) -: /: 0.01*v=:        ?10000$50000
+(/:v) -: /: 0.01*v=:        ?66000$50000
+
+(/:v) -: /: 0.01*v=: - 1+   ?10000$50000
+(/:v) -: /: 0.01*v=: - 1+   ?66000$50000
+
+(/:v) -: /: 0.01*v=: _25000+?10000$50000
+(/:v) -: /: 0.01*v=: _25000+?66000$50000
+
+(/:"1 v) -: /:"1 o. v=:        ?2 3 10000$50000
+(/:"1 v) -: /:"1 o. v=:        ?2 3 66000$50000
+
+(/:"1 v) -: /:"1 o. v=: - 1+   ?2 3 10000$50000
+(/:"1 v) -: /:"1 o. v=: - 1+   ?2 3 66000$50000
+
+(/:"1 v) -: /:"1 o. v=: _25000+?2 3 10000$50000
+(/:"1 v) -: /:"1 o. v=: _25000+?2 3 66000$50000
+
+NB. complex
+a =: r._40+?10 5$100
+i =: /:a
+k =: ?10$5
+i =&# a
+i       -: /: +.a
+(/:~i)  -: i. #a
+(/:k#a) -: ; i { (i.&.>k) +&.> +/\ }:0,k
+(,0)    -: /: 3j4
+''      -: /: (0,?(?5)$10)$3j4
+(i.#x)  -: /: x=: ((?10),0)$3j4
+(i.12)  -: /: r.12 5$100
+
+NB. boxed
+(/:a) -: /: <"0  a=: ?20 7$1000
+(/:a) -: /: <"1  a
+(/:a) -: /: <&.> a
+(/:a) -: /: <&.> a
+(/:a) -: /: > a=:     _50+&.>(?10$20)$&.>100
+(/:a) -: /: > a=:o.&.>_50+&.>(?10$20)$&.>100
+(/:a) -: /: > a=:r.&.>_50+&.>(?10$20)$&.>100
+(/:a) -: /: > a=:(<"0 ?5$2),(<"0 ?5$100),(<"0 o.?5$100),<"0 r.?5$100
+(/:a) -: /: > a=:(?~#a){a
+(/:a) -: /: i.&.>a=:?~30
+
+f=: 3 : 0
+ assert. (/:   a) -: /:   <"0 a=.?(100,y)$3
+ assert. (/:"1 a) -: /:"1 <"0 a
+ assert. (/:"2 a) -: /:"2 <"0 a
+ assert. (/:   a) -: /:   <"1 a
+ assert. (/:"2 a) -: /:"1 <"1 a
+ assert. (/:"3 a) -: /:"2 <"1 a
+ 1
+)
+
+*./@f"0 >:       i.3 10
+*./@f"1 >:  5 6#:i.3 10
+*./@f"1 >:5 3 2#:i.3 10
+
+g=: 3 : '0 1 -: /: ,:~ t=. y$t,<t=.1 2 3;''abc'' '
+g"0 i.3 10
+
+(/:"1 a) -: /:"1 <"0 a=:?  20 17$1000
+(/:"2 a) -: /:"2 <"0 a=:?4 20 17$1000
+
+le=: 0: = {.@/:
+x=: o.&.>_50+&.>(?10$20)$&.>100
+y=: ;:'Cogito, ergo sum. Sui generis. Sine qua non.'
+z=: <"0 >5!:1 <'le'
+2 le\ /:~a=: (?~#x,y,z) { x,y,z
+
+0 1 2 -: /: x=:3j4;     'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:(i.0);   'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:'';      'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:(o.i.0); 'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:(j.i.0); 'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:(0$a:);  'Ex ungue leonem'; <<5 6 7
+2 1 0 -: /: |. x
+0 1 2 -: /: x=:'' ; (i.0) ; <0$a: 
+0 1 2 -: /: |. x
+
+a=: < 2 3 $ 1 2 3 4 5 6
+b=: < 3 2 $ 1 2 5 6 3 4
+c=: < 1 3 $ 1 2 3
+d=: < 1 2 $ 1 2
+e=: < 2 2 $ 1 2 5 6
+
+(i.5) -: /: d,e,b,c,a
+(/:"1 p) -: /:"1 (d,e,b,c,a){~p=: (i.!5) A. i.5
+
+NB. extended integer
+(/: -: /:       @:x:) a=: _500+?100  $1000
+(/: -: /:@:(<"0)@:x:) a
+(/: -: /:       @:x:) a=: _500+?100 4$1000
+(/: -: /:@:(<"1)@:x:) a
+
+NB. rationals
+(/: -: /:       @:x:) a=: -:_500+?100  $1000
+(/: -: /:@:(<"0)@:x:) a
+(/: -: /:       @:x:) a=: -:_500+?100 4$1000
+(/: -: /:@:(<"1)@:x:) a
+
+'index error'  -: 3 4 5 /: etx 1 2 3 4
+
+
+NB. /:y on integer lists ------------------------------------------------
+
+v=:?100$25
+(/:v) -: /:v-25
+(/:v) -: /:v+100
+(/:v) -: /:o.v
+(/:v) -: /:,.~v
+
+1 2 3 4 5 0 -: /: v=: 2e9 _2e9 1 2 3 4
+_2e9 1 2 3 4  2e9 -: /:~v
+
+x=: <._1+2^31
+y=: _1-x
+v=:x,y,1 2 3 4
+(/:v) -: 1 2 3 4 5 0
+(/:~v) -: y,1 2 3 4,x
+
+
+NB. /:"r ----------------------------------------------------------------
+
+g =: 3 : ('/:y'; ':'; 'x/:y')
+
+(/:"0 -: g"0) y=:?2 3 4 17$2
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+
+(/:"0 -: g"0) y=:a.{~?2 3 4 17$#a.
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+(/:"0 -: g"0) y=:a.{~?2 3 4 18$#a.
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+
+(/:"0 -: g"0) y=:?2 3 4 17$34
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+(/:"0 -: g"0) y=:?2 3 4 17$+:*/2 3 4 17
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+(/:"0 -: g"0) y=:_50+?2 3 4 17$100
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+
+(/:"0 -: g"0) y=:o.?2 3 4 17$34
+(/:"1 -: g"1) y
+(/:"2 -: g"2) y
+(/:"3 -: g"3) y
+(/:"4 -: g"4) y
+
+x=:?20 3$100
+x (/:"2 2 -: g"2 2) y=:?2 20 3$100
+x (/:"2 3 -: g"2 3) y=:?20 2 3$100
+x (/:"1 1 -: g"1 1) y=:o.?3$100
+x (/:"1 0 -: g"1 0) y=:?1000
+x (/:"1 0 -: g"1 0) y=:a.{~?20$256
+
+(/:~"1 -: g~"1) y=:?4 17$2
+(/:~"1 -: g~"1) y=:a.{~32+?17 4$95
+(/:~"1 -: g~"1) y=:?2 7 16$100
+(/:~"1 -: g~"1) y=:o.?4 17$1232
+
+(2 3 4 1$0) -: /:"0 i.2 3 4
+(0 0 0 1$0) -: /:"0 i.0 0 0
+
+'index error' -: (i.4) /: etx i.5
+
+4!:55 ;:'a b c d e f g ge i k le m p v x y z'
+
+