File:  [parser3project] / parser3 / tests / 430.html
Revision 1.4: download - view: text, annotated - select for diffs - revision graph
Fri Oct 18 01:32:50 2024 UTC (20 months, 2 weeks ago) by moko
Branches: MAIN
CVS tags: release_3_5_1, release_3_5_0, HEAD
test updated after constructors renamed

@main[]

0. init

0.1 $a[; $.k1[v1] $.k2[v2] ;^method[param];$b[b]vv] ^show[$a]

0.2 $a[$b[b;c]vv] ^show[$a] ^show[$b] $a.CLASS_NAME $b.CLASS_NAME

0.3 $a[; $.k1[v1] $.k2[v2] ;$vv] ^show[$a]

0.4 $a.1[string]  $a.5(6) ^show[$a]

0.5 ^try-catch{ $a.-5[bug] }

0.6 ^a.count[] vs ^a.count[all] ^a._count[all]
0.7 ^try-catch{ ^a.count[bug] }


1. create, add vs join

1.1 создаем "дырявый" массив $a[^array::copy[ $.2[1] $.5[2] $.9[3] ]]
1.2 из него дырявый массив: ^show[^array::copy[$a]]
1.3 из него обычный массив: $b[^array::create[]] ^b.join[$a] ^show[$b]

1.4 если параметр хеш, перезапись значений при add: ^b.add[ $.2[over] ] ^show[$b]
1.5 если параметр хеш, добавление значений при join: ^b.join[ $.2[over] ] ^show[$b]

1.6 ^try-catch{ ^a.add[$a] }

$b[^array::copy[ $.2[over2] $.4[over4] ]]
$c[^array::copy[$a]]
1.6 если параметр массив, перезапись значений при add: ^show[$a] ^a.add[$b] ^show[$a]
1.7 если параметр массив, добевление значений при join: ^show[$c] ^c.join[$b] ^show[$c]

2. left, right, mid, for, foreach, select
$a[^array::copy[ $.1[v1] $.5[v5] $.6[v6] $.8[v8] ]]

2.1 ^show[^a.left(2)]
2.2 ^show[^a.left(10)]
2.3 ^show[^a.left(-2)]

2.4 ^show[^a.right(2)]
2.5 ^show[^a.right(10)]
2.6 ^show[^a.right(-2)]

2.7 ^show[^a.mid(2)]
2.8 ^show[^a.mid(2;1)]
2.9 ^show[^a.mid(0;1)]
2.91 ^try-catch{ ^a.mid(-1;1) }
2.92 ^try-catch{ ^a.mid(1;-1) }

2.10 ^a.foreach[;v]{'$v'}[,]
2.11 ^a.foreach[k;]{'$k'}[,]
2.12 ^a.foreach[;v]{'$v'}[,]
2.13 ^a.foreach[k;v]{'$v'}{[$k],}
2.14 ^a.for[;v]{'$v'}[,]
2.14 ^a.for[;v]{$v.CLASS_NAME}[,]
2.15 ^a.for[k;v]{$v}{[$k],}
2.16 ^a.for[;v]{ $v}{,}
2.17 ^a.for[k;v]{$k=$v}{, }
2.18 ^a.for[k;v]{$k=$v ^if($k>3){^break[]}}

2.20 ^show[^a.select[k;v]($k>5)]
2.21 ^show[^a.select[k;v]($k==5)]
2.22 ^show[^a.select[k;v]($v eq 'v6')]
2.23 ^show[^a.select[k;v]($k>1)[ $.limit(2) ]]
2.24 ^show[^a.select[k;v]($k>1)[ $.limit(2) $.reverse(1) ]]
2.25 ^try-catch{ ^a.select[k;v]($k>1)[ $.bug(1) ] }
2.25 ^show[^a.select[k;v]($k<5 || ^break[])[ $.limit(2) ]]
2.26 ^show[^a.select[k;v]($k>5 || ^break[])[ $.limit(2) $.reverse(1) ]]


3. append/insert

$a[^array::copy[ ]]

3.1 ^show[$a]

3.2 ^try-catch{ $b[^array::copy[$method]] }
3.3 ^try-catch{ $b[^array::insert(-1)[value]] }
3.4 ^try-catch{ $b[^array::insert[abc][value]] }
3.5 ^try-catch{ ^array::insert(100000000000000)[value] }

3.6 OK: $b[^array::append[$method]] $b[^array::create[$method]]

3.7 $a[a1;a2;a3;a4] $b[b1;b2]

^a.insert(10)[v1;v2]
^a.append[$b]
^a.append[c1;c2]
^show[$a]

3.8 ^a.insert(2)[d1;d2]
^show[$a]

3.9 ^try-catch{ $a[^array::copy{}] }
3.10 ^try-catch{ $a[^array::copy[not whitespace string]] }

3.11 ^a.join[ ]
3.12 ^try-catch{ ^a.join{}] }
3.13 ^try-catch{ ^a.join[not whitespace string] }

4. json

$f[^file::load[text;253_json.txt; $.charset[windows-1251] ]]
$s[^taint[as-is][$f.text]]

4.1. ^try-catch{ $o[^json:parse[$s][ $.array[x] ]] }
     ^try-catch{ $o[^json:parse[$s][ $.array[$print] ]] }
     ^try-catch{ $o[^json:parse[$s][ $.object[$print] ]] }
     ^try-catch{ $o[^json:parse[$s][ $.bug[yes] ]] }

$o[^json:parse[$s][ $.distinct[all] ]]

4.2. $o.array.CLASS_NAME, $o.array.6

4.3 ^print[^json:string[$o; $.indent(1) $.table[array] ]]

$o.array.15[last]

4.4 ^print[^json:string[$o.array; $.indent(1) $.array[object] ]]

4.5 ^print[^json:string[$o.array; $.indent(1) $.array[array] ]]

4.6 ^print[^json:string[$o.array; $.indent(1) $.array[compact] ]]

4.7 ^try-catch{ ^print[^json:string[$o.array; $.array[bug] ]] }

4.8 ^try-catch{ ^print[^json:string[$o.array; $.void[bug] ]] }

4.9 ^try-catch{ ^print[^json:string[$o.array; $._default[$print] ]] }

$a[0;1;2] $a.5[5]

4.10 ^json:string[$a; $.array[array] ]

4.11 ^json:string[$a; $.array[array] $.indent(1) ]

4.12 ^json:string[$a; $.array[array] $.indent[  ] ]

4.13 ^json:string[^array::create[]]

4.14 ^json:string[^array::create[]; $.array[array] ]


@print[s]
$result[^s.replace[e+0;e+]]

@method[param]
here?

@show[a]
^json:string[$a; $.array[object] ]

E-mail: