Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
3266 lines (2992 sloc) 54 KB
==== test/a1.fxl
==
ping
==
ping
==
ping
ping
ping
ping
ping
ping
ping
ping
ping
ping
ping
ping
==
ping
ping
ping
ping
ping
ping
==
str abc
str abc
void
str abcde
void
str abcde
void
str abcde
void
num 3.14159265358979
num 42
num 5
num 4
str cdefg
num 467.86
num 1.61803398874989
bool T
bool F
bool T
bool F
bool T
bool T
void
void
void
==
str 1.61803398874989
num 1.61803398874989
other
void
void
str 5.8
void
num 3
void
void
void
num 3
void
num 42
void
num -7.8
num 0
num -0
num 43.8
==
str
str
str
==
str a
str
str
==
str
str a
str ab
str abc
str abcd
str abcd
==
str
str b
str bc
str bcd
str bcd
==
str
str c
str cd
str cd
==
str
str d
str d
==
void
void
void
void
==
num 3
num 2
void
num 2
void
num 3
num 3
void
void
void
num 0
num 7
num 15
void
num 6
num 12
void
num 15
void
num 0
void
void
void
num 0
void
void
== test char_width
str hej åabcüdef üä 1≠0 包子x
ch h
ch e
ch j
ch
ch å
ch a
ch b
ch c
ch ü
ch d
ch e
ch f
ch
ch ü
ch ä
ch
ch 1
ch ≠
ch 0
ch
ch 包
ch 子
ch x
== test buf
: abcdefg
:
: abcde
: tuvwxyz
TTFFabc 2.3 -3.8 defg
==
bool F
bool F
bool T
bool T
bool F
bool T
bool T
bool T
bool T
bool F
bool F
bool T
bool F
==
void
void
void
num 3
void
bool T
void
void
void
void
num 4
void
void
num 3
void
str 42
void
void
bool T
str abc
void
str abcde
void
void
num 3
void
void
str de
str defg
void
void
num 42
void
void
==
abcd~ABA
AAB~ABC
hello
"hello"
~(1) "hello"~(1)
~(2) ~(1) "hello"~(1)~(2)
"Ain't nothin' simple when you're doin' it for real." (Gus Baird)
"My fathers sleep on the sunrise plains,
And each one sleeps alone.
Their trails may dim to the grass and rains,
For I choose to make my own.
I lay proud claim to their blood and name,
But I lean on no dead kin;
My name is mine, for the praise or scorn,
And the world began when I was born
And the world is mine to win. ..."
(Badger Clark, "The Westerner")
==
[
(CALC)
x = 30
x = 30
x = 30
x = 30
]
==
(CALC)1936
88
square 4=16
square 7=49
16
49
==
Hello world!
==
f = hej
åabcüdef
ghij
üä
1≠0
åabcüdef = hej åabcüdef
ghij = hej ghij
üä = hej üä
1≠0 = hej 1≠0
vegetable grönsak
dessert efterrätt
==
3 bottles of beer on the wall
3 bottles of beer
Take one down, pass it around
2 bottles of beer on the wall
2 bottles of beer on the wall
2 bottles of beer
Take one down, pass it around
1 bottle of beer on the wall
1 bottle of beer on the wall
1 bottle of beer
Take one down, pass it around
0 bottles of beer on the wall
==
x = 23
x = 70
x = 35
x = 106
x = 53
x = 160
x = 80
x = 40
x = 20
x = 10
x = 5
x = 16
x = 8
x = 4
x = 2
x = 1
==
x = 81
==
str x
num 5
==
fib 0 = 0
fib 1 = 1
fib 2 = 1
fib 3 = 2
fib 4 = 3
fib 5 = 5
fib 6 = 8
fib 7 = 13
fib 8 = 21
==
fib 8 = 21
fib 7 = 13
fib 6 = 8
fib 5 = 5
fib 4 = 3
fib 3 = 2
fib 2 = 1
fib 1 = 1
fib 0 = 0
==
fib 30 = 832040
==
fib 11 = 89
fib 12 = 144
fib 13 = 233
fib 14 = 377
fib 15 = 610
fib 16 = 987
fib 17 = 1597
fib 18 = 2584
fib 19 = 4181
fib 20 = 6765
fib 21 = 10946
==
hi
I am Fred.
35.2
74.5
74.5
74.5
15
14
14.8
3.84707681233427
121.510417518735
1.56861591791385
-0.996164608835841
bye
==
45.87
==
length is 16777216
==
Hello world.
x = 42
47
37
210
8.4
inf
==
T
T
T
F
T
T
F
T
T
F
F
F
F
T
T
T
F
F
T
T
F
T
F
F
T
==
-4.97
210802.919995902
4.8655
5
49.4600760456274
100000000000.01
285
125867
7
-7
8
-8
7
-7
7
-7
ceil 0 = 0
ceil 0 = 0
ceil 0.1 = 1
ceil -0.1 = -0
ceil 0.5 = 1
ceil -0.5 = -0
ceil 14.8 = 15
ceil -14.8 = -14
ceil 4.8655 = 5
ceil -4.8655 = -4
ceil 125867.2 = 125868
ceil -125867.2 = -125867
ceil 7.2 = 8
ceil -7.2 = -7
ceil 7.8 = 8
ceil -7.8 = -7
10000
3.00000000000001
3
a
ab
a
abcdefgh
0
1
3
3
==
[
]
[
1
2
]
[
1
2
]
==
[
0.927291684284476
0.471201063818858
0.677796232364046
0.979630045117638
0.0262161111581214
]
[
0.927291684284476
0.471201063818858
0.677796232364046
0.979630045117638
0.0262161111581214
]
==
[
0.553374707956507
0.316999953387771
0.460828633727892
0.243800594584924
0.221772324397123
]
[
0.553374707956507
0.316999953387771
0.460828633727892
0.243800594584924
0.221772324397123
]
==
Returns (Fund vs. Benchmark)
[
-0.893261320594374 -16.5237724084178
6.64835461191322 -6.9561157796452
-13.8899158690587 0.978424485700002
-7.42083726309821 -8.2111801242236
3.17855669949858 -10.7457030721342
-6.59786522873157 8.339651250948
3.48606686727264 9.923023093072
-0.682005428813126 5.85688820982899
-2.43289592602041 -0.0721674284340001
-5.76926099972037 7.462686567164
-3.05327482058277 3.69623655914
-1.00636347251863 3.54288183192899
0.0782182723713332 -1.919465887753
3.38911087514397 6.15826419910701
-0.217281242107792 1.903616872057
-3.63498264210177 -3.6279618523252
5.61440844291543 3.12181187512801
3.24354516878298 6.08428967154699
7.33192779132095 1.548074232957
5.81561666835948 -7.9437964918725
-0.406389365681947 -5.1775738228252
-6.98223722952097 6.82798527091
12.3711679600035 -4.5006893834942
2.87384595849236 8.961534495205
1.8778094684559 3.823585084232
7.63391664696429 0
-2.23667161458249 6.68185961713801
4.66224451477453 2.332735196104
-0.788235453975683 3.473613894456
-8.07078998275932 0.00806972240199322
-0.978130017823486 2.896796578714
-2.87636811199844 -1.1213927227102
7.97482267628187 -1.6892695693552
8.60965529420248 -2.000645369474
1.20791622426788 -5.4988475469213
4.76889077637657 -6.9425087108014
18.6283281925775 10.923897781522
6.11793431938426 -0.4135021097046
-0.865787441111299 1.050758410304
1.07915664726004 4.63731656184501
-2.01835813630018 4.33563071005001
-7.11981744412673 3.218373146939
8.11806477589498 -0.669742521208505
9.52026643043675 -6.0008990110878
-2.96600202876063 4.056746632661
-1.69208852051672 1.17953431372499
4.09867474496914 2.50567751703299
-2.61735286232427 2.54043275976701
2.73029144176504 -1.8221101908534
-1.09948485009037 0.564847417839998
3.55118726143842 0.897220803850995
-2.86508248957761 5.118565644881
-7.10477189588519 1.27235213204999
6.12734042211471 3.796264855688
1.0860315129092 1.92358021460399
6.0154171502939 2.36230581589401
0.363614841755688 -1.33575818387059
4.08090354462769 5.167482361914
1.21137768806991 -2.9977033724163
-4.4688306021859 3.16510903426801
7.9975253586303 4.626162580022
9.25002054235966 2.966982221196
-1.12943348186301 2.58997645476
-4.34278449974245 -3.5245901639344
1.80183112092489 4.55395072217499
10.3567603188175 0.828863968796001
3.07471154465189 0.693101225016002
5.12094831779006 2.321114134785
2.17648405452895 2.06508135168999
-8.37189862985007 0.827713059473001
]
Average Fund vs. Risk-Free Return
1.2668%
Standard Deviation of Fund vs. Risk-Free Return
5.6103%
Sharpe Ratio of Fund vs. Risk-Free Return
0.2258
Standard Deviation of Fund vs. Benchmark Return
7.5759%
Relative Standard Deviation
1.3504
Modigliani risk-adjusted performance
1.7106%
Sharpe Ratio of Fund vs. Benchmark
0.0275
==
Evaluating the context.
Hi
57
T
HEY: Fred says a
Wilma says b
Goodbye
==
T
T
F
F
T
T
==
T
T
T
T
T
T
T
==
F
F
F
F
F
F
F
==
T
hi
T
T
F
==
F
hi
F
F
T
F
== tuples
{ }
{ a }
{ a b }
{ a b c }
{ a b c d }
{ a b c d e }
{ a b c d e f }
x=3
x=3 y=4
x=ab y=cdefg z=65536
x=3 y=12
x=3 y=12 z=36
a=1 b=2 c=3 d=4 e=5 f=6 g=7
==
a
ab
ab3
ab1.5
x = 3388
x = 3388, y = 3630
a
T
F
TTFTFF
Hello 9
Bye
Hello 9
Bye
Hello 9
Bye
Hello 9
Bye
==
x = 5
y = 6
==
(L)(R)
8
(L)(R)
8
(L)(R)
8
[
am
am
amra
amra
angie
angie
babel
babel
blotch
blotch
bow
bow
crown
crown
dewar
dewar
eb
eb
expel
expel
flam
flam
gibby
gibby
grout
grout
haw
haw
jess
jess
jo
jo
perky
perky
piece
piece
polka
polka
qqqq
qqqq
revel
revel
ro
ro
rug
rug
scud
scud
sham
sham
skip
skip
subtly
subtly
than
than
ur
ur
when
when
]
[
am
amra
angie
babel
blotch
bow
crown
dewar
eb
expel
flam
gibby
grout
haw
jess
jo
perky
piece
polka
qqqq
revel
ro
rug
scud
sham
skip
subtly
than
ur
when
]
female
1 1 2 2 3 3 4 5 5 6 6 7 8 8 9 9 10 11 11 12 13 13 14 14 15 16 16 17 17 18 19 19 20 21 21 22
male
0 0 1 2 2 3 4 4 5 6 6 7 7 8 9 9 10 11 11 12 12 13 14 14 15 16 16 17 17 18 19 19 20 20 21 22
diff
1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
[
== resolve
symbol say
symbol fred
symbol wilma
symbol is_void
symbol void
symbol barney
== run
I am Fred.
I am Wilma.
test void: T
I am Barney.
]
[
Run in standard context.
15
Run in weird context.
56
]
[
PING
PING
PING
]
==
Let's parse.
Hello world!
Hello world!
Hello world!
==
Let's parse.
5 15
7.2 21.6
-1.3 -3.9
==
Write tmp.txt:
Read tmp.txt:
ch T
ch e
ch s
ch t
ch
ch d
ch a
ch t
ch a
ch
ch h
ch e
ch r
ch e
ch
ch ü
ch ä
ch
ch 1
ch ≠
ch 0
ch
ch 包
ch 子
ch
Removed tmp.txt
==
This should go to stdout.
This goes to the file.
This also goes to the file.
Removed tmp.txt
==
put a
get a
get void
put bc
get b
put d
get c
get d
put efg
get e
put h
get f
get g
get h
get void
Removed tmp.txt
==
Passed var test of 20150907.
The first 16 Fibonacci numbers:
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
The first 5 Fibonacci numbers:
1
1
2
3
5
==
set x = 3
add: 0 => 1
set y = 4
add: 1 => 2
set z = 5
add: 2 => 3
set x = 3
add: 3 => 4
set y = 4
add: 4 => 5
set z = 5
add: 5 => 6
set q = 0
add: 6 => 7
[
{ q 0 }
{ z 5 }
{ y 4 }
{ x 3 }
{ z 5 }
{ y 4 }
{ x 3 }
]
count = 7
get x = 3
get y = 4
get z = 5
get q = 0
get r =
bye
==
()x=3
x=3
x=3
==
(x=)3
3
3
==
hi
==
123,456.78901200
-123,456.78901200
123456.78901200
123,456.7890120
-123,456.7890120
123456.7890120
123,456.789012
-123,456.789012
123456.789012
123|456.79
-123|456.79
123456.79
12,345,678.78901
-12,345,678.78901
12345678.78901
0.78901200
-0.78901200
0.78901200
1
-1
1
0
0
0
0.000
0.000
0.000
314.1590000
-314.1590000
314.1590000
0.1590000
-0.1590000
0.1590000
0.159
-0.159
0.159
==
Hi
Hi
==
Hi
Hi
==
Hi
==
c b a
==
5 4 3 2 1
==
"abc"
~1 "abc"~1
~2 ~1 "abc"~1~2
~3 ~2 ~1 "abc"~1~2~3
~4 ~3 ~2 ~1 "abc"~1~2~3~4
~5 ~4 ~3 ~2 ~1 "abc"~1~2~3~4~5
~6 ~5 ~4 ~3 ~2 ~1 "abc"~1~2~3~4~5~6
"ab~1c"
~2 "ab~1c"~2
~3 ~2 "ab~1c"~2~3
~1 a"b"~2c~1
~3 ~1 a"b"~2c~1~3
~4 ~3 ~1 a"b"~2c~1~3~4
~5 ~4 ~3 ~1 a"b"~2c~1~3~4~5
==
a & "b" 1<3
a &amp; &quot;b&quot; 1&lt;3
T
==
-1 : (void)
0 : a
1 : b
2 : c
3 : (void)
==
result:
Hello
line 1
line 2
line 3
==
T
T
T
T
F
File handle is properly void after close.
==
Jan 31 January
Feb 29 February
Mar 31 March
Apr 30 April
May 31 May
Jun 30 June
Jul 31 July
Aug 31 August
Sep 30 September
Oct 31 October
Nov 30 November
Dec 31 December
==
== put
[abcdefg3.2TFABCD]
== say
[abcdefg
3.2
T
F
ABCD
]
== fput
[abcdefg3.2TFABCD]
== fsay
[abcdefg
3.2
T
F
ABCD
]
is_newer src/fexl.c bin/fexl = F
is_newer bin/fexl src/fexl.c = T
is_newer src/test/a1.fxl missing = T
is_newer missing src/test/a1.fxl = T
is_newer src/test/a1.fxl src/test/a1.fxl = F
is_newer src/test/a1.fxl src/test/a1.fxl = F
is_newer missing missing = T
is_newer missing missing = T
path "src" type "d"
path "src/fexl.c" type "f"
path "x/y" type ""
path "" type "d"
path "." type "d"
path "bin" type "d"
path "bin/fexl" type "f"
path "x" type ""
509
716826
mkdir : 0
rmdir : 0
[ trim_spaces
all "" = ""
beg "" = ""
end "" = ""
all "a" = "a"
beg "a" = "a"
end "a" = "a"
all "a " = "a"
beg "a " = "a "
end "a " = "a"
all " ab" = "ab"
beg " ab" = "ab"
end " ab" = " ab"
all "abc" = "abc"
beg "abc" = "abc"
end "abc" = "abc"
all " abc " = "abc"
beg " abc " = "abc "
end " abc " = " abc"
all "" = ""
beg "" = ""
end "" = ""
all " " = ""
beg " " = ""
end " " = ""
all " abcd " = "abcd"
beg " abcd " = "abcd "
end " abcd " = " abcd"
]
exit 0
==== test/a2.fxl
Hello
Type some lines of input and I'll echo them back.
Press Ctrl-D to stop.
ch = 'a'
ch = 'b'
ch = 'c'
ch = '
'
ch = 'd'
ch = 'e'
ch = 'f'
ch = 'g'
ch = '
'
ch = '
'
ch = 'h'
ch = 'i'
ch = 'j'
ch = '
'
ch = 'å'
ch = 'a'
ch = 'b'
ch = 'c'
ch = 'ü'
ch = 'd'
ch = 'e'
ch = 'f'
ch = '
'
ch = 'ü'
ch = 'ä'
ch = ' '
ch = '1'
ch = '≠'
ch = '0'
ch = ' '
ch = '包'
ch = '子'
ch = '
'
Get from string [abcåabcüdef封x]
ch = 'a'
ch = 'b'
ch = 'c'
ch = 'å'
ch = 'a'
ch = 'b'
ch = 'c'
ch = 'ü'
ch = 'd'
ch = 'e'
ch = 'f'
ch = '封'
ch = 'x'
String to list [abcåabcüdef封x]
[
a
b
c
å
a
b
c
ü
d
e
f
x
]
Show logical characters in [AOOab~åüää≠封小xyz]
ch = 'A'
ch = 'O'
ch = 'O'
ch = 'a'
ch = 'b'
ch = '~'
ch = 'å'
ch = 'ü'
ch = 'ä'
ch = 'ä'
ch = '≠'
ch = '封'
ch = '小'
ch = 'x'
ch = 'y'
ch = 'z'
Show individual hex bytes in [AOOab~åüää≠封小xyz]
ch = '41'
ch = '4f'
ch = '4f'
ch = '61'
ch = '62'
ch = '7e'
ch = 'c3'
ch = 'a5'
ch = 'c3'
ch = 'bc'
ch = 'c3'
ch = 'a4'
ch = 'c3'
ch = 'a4'
ch = 'e2'
ch = '89'
ch = 'a0'
ch = 'e5'
ch = 'b0'
ch = '81'
ch = 'e5'
ch = 'b0'
ch = '8f'
ch = '78'
ch = '79'
ch = '7a'
Good bye.
exit 0
== stdout:
hello
This goes to stdout.
x = 7
This goes to stdout.
x = 7
bye
== stderr:
This goes to stderr.
x = 7
This goes to stderr.
x = 7
==== test/a4.fxl
[
]
exit 0
==== test/a5.fxl
begin
TALK
TALK
TALK
TALK
end
exit 0
==== test/a6.fxl
==
[
(parsing)
(resolving)
]
Hello world!
Hello world!
==
[
(parsing)
(resolving)
]
HI
HI
==
[
(parsing)
(resolving)
]
got it
x = 7
exit 0
==== test/a7.fxl
Undefined symbol xsay on line 2 of test/a7.fxl
exit 1
==== test/a8.fxl
[
0.927291684284476
0.471201063818858
0.677796232364046
]
[
0.927291684284476
0.471201063818858
0.677796232364046
]
[
0.927291684284476
0.471201063818858
0.677796232364046
]
exit 0
==== test/a9.fxl
== test_1
PING
== test_2
PING
PING
PING
PING
PING
== test_3
PING
PING
PING
== test_4
PING
pong
PING
PING
PING
exit 0
==== test/b10.fxl
[ get 23 get 61 get 62 get 63 get 64 get 65 get 66 get 67 get 68 get 69 get 6a get 6b get 6c get 6d get 6e get 6f ]
[ 23 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f ]
[ 23 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f ]
[ get 70 get 71 get 72 get 73 get 74 get 75 get 76 get 77 get 78 get 79 get 7a get 0a get 23 get 61 get 62 get 63 ]
[ 70 71 72 73 74 75 76 77 78 79 7a 0a 23 61 62 63 ]
[ 70 71 72 73 74 75 76 77 78 79 7a 0a 23 61 62 63 ]
get get get get get get get get get get get get get get get get 6465666768696a6b6c6d6e6f70717273
6465666768696a6b6c6d6e6f70717273
6465666768696a6b6c6d6e6f70717273
get get get get get get get get get get get get get get get get 7475767778797a0a2361626364656667
7475767778797a0a2361626364656667
7475767778797a0a2361626364656667
exit 0
==== test/b11.fxl
path a
dir .
path a/b/c
dir a/b
path a/b/c///
dir a/b
path ../////
dir .
path ////b/////
dir /
path a/b////c///
dir a/b
path aaa/bbb////ccc///
dir aaa/bbb
path a/b/c
base c
path a/b/c///
base c
path a/b/cde///
base cde
path a
base a
path
base
path /a
base a
path ////a
base a
path /
base /
hi
F
0
119252
2.71828182845905
3.14159265358979
6.28318530717959
a
b
07/19/2017
&lt;b&gt;x;&quot;y&quot;&lt;/b&gt;
3,874,511.37
e
["<b>a</b>" {1.2 3.8 "xxx"} T F]
[
"<b>a</b>"
{1.2 3.8 "xxx"}
T
F
]
[&quot;&lt;b&gt;a&lt;/b&gt;&quot; {1.2 3.8 &quot;xxx&quot;} T F]
[
&quot;&lt;b&gt;a&lt;/b&gt;&quot;
{1.2 3.8 &quot;xxx&quot;}
T
F
]
[&quot;&lt;b&gt;a&lt;/b&gt;&quot; ~1 tag &quot;&lt;br&gt;&quot;~1 {1.2 3.8 &quot;xxx&quot;} T F]
[
&quot;&lt;b&gt;a&lt;/b&gt;&quot;
~1 tag &quot;&lt;br&gt;&quot;~1
{1.2 3.8 &quot;xxx&quot;}
T
F
]
~1 1&quot;2&quot;3~1
["a" ~1 "~1 23 {1 2} [T F ~1 "hi"~1 void] -2.3 "a" ~1 "~1 23 {1 2} [T F ~1 "hi"~1 void] -2.3]
["a" ~1 "~1 23 {1 2} [T F ~1 "hi"~1 void] -2.3 "a" ~1 "~1 23 {1 2} [T F ~1 "hi"~1 void] -2.3]
T
= test file_content
#abcdefghijklmnopqrstuvwxyz
key c color orange qty 2
key a color red qty 42
key d color qty
key b color blue qty 93
sep "/"
str ~1 /a/b/"hi"///d/e/~1
list ["" "a" "b" ~1 "hi"~1 "" "" "d" "e" ""]
sep "[XYZ]"
str ~1 [XYZ]a[XYZ]b[XYZ]"hi"[XYZ][XYZ][XYZ]d[XYZ]e[XYZ]~1
list ["" "a" "b" ~1 "hi"~1 "" "" "d" "e" ""]
sep "/"
str "a/b/c"
list ["a" "b" "c"]
sep "."
str "a.b.c"
list ["a" "b" "c"]
sep ""
str "a"
list ["a"]
sep ""
str ""
list [""]
sep ""
str ""
list [""]
sep "/"
str "/"
list ["" ""]
sep "//"
str "////"
list ["" "" ""]
!8
!8
!!8
!!8
<td align=right>X</td>
<div class=a>
X
</div>
<div class=a>X</div>
[5 6 7]
!12,345.67
!"hello"
!ABC
!{1 2 3}
![
"a"
"b"
"c"
]
[
"a"
"b"
"c"
]
[
"a"
"b"
"c"
]
void
32.8
.
?color=red
?color=red&amp;shape=circle
?color=blue&amp;key%22%21%2a%27%28%29%3b%3a%40%26%3d%2b%24%2c%2f%3f%23%5b%5d%25%221=val%22%21%2a%27%28%29%3b%3a%40%26%3d%2b%24%2c%2f%3f%23%5b%5d%25%221&amp;%3d=%3d
:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
:ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789
TAB 9
NL 10
CR 13
QU 34
= is_var
T
T
F
F
F
T
= str_bytes
length is 10
byte 251
byte 252
byte 253
byte 254
byte 255
byte 0
byte 1
byte 2
byte 3
byte 4
= uri_escape
\x=""
\y=""
GOOD
\x="abc"
\y="abc"
GOOD
\x=~1 Hello (world) [\x="@"]!~1
\y="Hello+%28world%29+%5b%5cx%3d%22%40%22%5d%21"
GOOD
\x="
"
\y="%0a"
GOOD
\x=~1 abc_ !*' ();:@&=+$,/?#[]%\"
_def~1
\y="abc_++%21%2a%27+%28%29%3b%3a%40%26%3d%2b%24%2c%2f%3f%23%5b%5d%25%5c%22%0d%0a%0a++_def"
GOOD
= microtime
{"1559751185778257" "1559751174778281" 10999976}
{"1559751174778281" "1559751185778257" -10999976}
{"1559751185778257" "1559751185778257" 0}
{"1559751185778257" "1559751185778257" 0}
exit 0
==== test/b12.fxl
== test_csv
[
]
[
[-11.36 12]
[21 22]
[31 32]
[41 42 "" "" ""]
[51 52]
["a b" "cd"]
[~1 ab c"hi"~1 "3.14"]
[6]
void
]
[
["x"]
]
[
[12 3 "" 4]
[5 6 7]
[~1 a b
"hi"
cd~1 "3.14" -48.7]
[~1 abc,def"ghi"jklmnopqrstuvwxyz~1]
[" "]
]
== test_ssv
[
]
[
["ab" "xzz" "d" "e" "f"]
["g" "hi"]
]
[
["ab" "c" "q"]
["d"]
]
[
["ab" "c"]
["x" "y"]
["z"]
]
[
["a" "x"]
["bc"]
["de" "f"]
]
[
["abcd"]
]
[
["a" "b" "xy" "z"]
["d" "d"]
]
[
["a" "bc"]
["d"]
]
[
["ab" "c d" "e" ~1 f"g"h~1 "ij" ~2 k"l"m~1n~2 "o" "p" "q" "r" "s"]
["tuv"]
]
[
["a" "b"]
]
[
["a"]
]
[
["a" void]
]
[
[void]
]
[
[void]
]
[
[void]
]
[
[void]
]
[
["ab" "xzz" "d" "e" "f"]
["g" "hi"]
["ab" "c"]
["x" "y"]
["z"]
["a" "x"]
["a" "b" "c d" "e" ~1 f"gh"~1 "ij" ~2 k"l"m~1n~2 "o" "p" "q" "r" "s"]
["tuv"]
["a bb c" ~1 x"y"z~1 "21" "38.3" "-44"]
["aaaa" "Block of text here.
Second line.
" "another block
second line"]
["1" "2" "3"]
["~a~ab~abc~abcd"]
]
exit 0
==== test/b13.fxl
== test_full_context
name say : T
name is_defined : T
name standard : F
name + : T
name @ : T
name define : T
name if : T
name each : T
name div : T
name show_list : T
name use_file : T
name use_lib : T
name use : T
name void : T
name dirname : T
name hex_digit : T
name read_ssv_file : T
name read_csv_file : T
name 2.5 : T
name 0 : T
name -3.56 : T
name -3.56e-4 : T
name -3.56e-4x : F
name x : F
== test_restricted_context
name say : T
name is_defined : T
name standard : F
name + : F
name @ : F
name define : F
name if : F
name each : F
name div : F
name show_list : F
name use_file : F
name use_lib : F
name use : F
name void : F
name dirname : F
name hex_digit : F
name read_ssv_file : F
name read_csv_file : F
name 2.5 : F
name 0 : F
name -3.56 : F
name -3.56e-4 : F
name -3.56e-4x : F
name x : F
exit 0
==== test/b14.fxl
directory src/lib
[
.
..
assoc.fxl
bool.fxl
date.fxl
format.fxl
hex.fxl
html.fxl
indent.fxl
index.fxl
list.fxl
math.fxl
read.fxl
read_csv.fxl
read_ssv.fxl
run.fxl
time.fxl
]
Created test/vector
open (pos 0)
seek_set 0 (pos 0)
truncate 100 (pos 0)
seek_set 10 (pos 10)
write 26 bytes "abcdefghijklmnopqrstuvwxyz" (pos 36)
seek_cur -3 (pos 33)
write 3 bytes "XYZ" (pos 36)
seek_end -20 (pos 80)
write 5 bytes "12345" (pos 85)
seek_set 10 (pos 10)
read 16 bytes "abcdefghijklmnop" (pos 26)
read 0 bytes "" (pos 26)
read 10 bytes "qrstuvwXYZ" (pos 36)
seek_end -3 (pos 97)
write 3 bytes "ABC" (pos 100)
seek_end -3 (pos 97)
read 3 bytes "ABC" (pos 100)
Removed test/vector
= file
get #
get a
at b
at b
get b
get c
at d
get d
at e
at e
get e
get f
get g
at h
= str
get #
get a
at b
at b
get b
get c
at d
get d
at e
at e
get e
get f
get g
at h
exit 0
==== test/b15.fxl
\index=
{"" "5763"
void
{"123456" "v2_123456"
void
{"a" "4999"
{"bc" "4113"
{"d" "2174"
void
void
}
void
}
{"def" "7249"
void
{"fgh" void
{"i" "5851"
void
{"j" "3674"
void
void
}
}
{"mno" void
{"f" "1286"
void
{"g" "0053"
void
void
}
}
{"xy" "2113"
{"z" "4113"
void
void
}
void
}
}
}
}
}
}
}
\pairs=
[
{"" "5763"}
{"123456" "v2_123456"}
{"a" "4999"}
{"abc" "4113"}
{"abcd" "2174"}
{"def" "7249"}
{"fghi" "5851"}
{"fghj" "3674"}
{"mnof" "1286"}
{"mnog" "0053"}
{"xy" "2113"}
{"xyz" "4113"}
]
\index=
{"" "5763"
void
{"123456" "v1_123456"
void
{"a" "4999"
{"bc" "4113"
{"d" "2174"
void
void
}
void
}
{"def" "7249"
void
{"fgh" void
{"i" "5851"
void
{"j" "3674"
void
void
}
}
{"mno" void
{"f" "1285"
void
{"g" "0053"
void
void
}
}
{"xy" "2113"
{"z" "4113"
void
void
}
void
}
}
}
}
}
}
}
\pairs=
[
{"" "5763"}
{"123456" "v1_123456"}
{"a" "4999"}
{"abc" "4113"}
{"abcd" "2174"}
{"def" "7249"}
{"fghi" "5851"}
{"fghj" "3674"}
{"mnof" "1285"}
{"mnog" "0053"}
{"xy" "2113"}
{"xyz" "4113"}
]
\index=
{"a" "4998"
{"bc" "4113"
{"d" "2174"
void
void
}
void
}
void
}
\pairs=
[
{"a" "4998"}
{"abc" "4113"}
{"abcd" "2174"}
]
\index=
{"a" "4998"
{"bc" "4113"
{"d" "2174"
void
void
}
void
}
void
}
\pairs=
[
{"a" "4998"}
{"abc" "4113"}
{"abcd" "2174"}
]
== 0
\index=
void
\pairs=
[
]
== 1
\index=
{"abc" "4113"
void
void
}
\pairs=
[
{"abc" "4113"}
]
== 2
\index=
{"ab" void
{"c" "4113"
void
{"e" "1210"
void
void
}
}
void
}
\pairs=
[
{"abc" "4113"}
{"abe" "1210"}
]
== 3
\index=
{"a" "4999"
{"b" void
{"c" "4113"
void
{"e" "1210"
void
void
}
}
void
}
void
}
\pairs=
[
{"a" "4999"}
{"abc" "4113"}
{"abe" "1210"}
]
== 4
\index=
{"ab" void
{"c" "4113"
void
{"e" "1210"
void
void
}
}
void
}
\pairs=
[
{"abc" "4113"}
{"abe" "1210"}
]
== 5
\index=
{"abe" "1210"
void
void
}
\pairs=
[
{"abe" "1210"}
]
== 6
\index=
void
\pairs=
[
]
== 0
\index=
void
\pairs=
[
]
== 1
\index=
{"" "5763"
void
void
}
\pairs=
[
{"" "5763"}
]
== 2
\index=
{"" "5764"
void
void
}
\pairs=
[
{"" "5764"}
]
== 3
\index=
{"" "5765"
void
void
}
\pairs=
[
{"" "5765"}
]
== 4
\index=
void
\pairs=
[
]
\index=
{"" "5763"
void
{"123456" "v2_123456"
void
{"a" "4999"
{"bc" "4113"
{"d" "2174"
void
void
}
void
}
{"def" "7249"
void
{"fgh" void
{"i" "5851"
void
{"j" "3674"
void
void
}
}
{"mno" void
{"f" "1286"
void
{"g" "0053"
void
void
}
}
{"xy" "2113"
{"z" "4113"
void
void
}
void
}
}
}
}
}
}
}
\pairs=
[
{"" "5763"}
{"123456" "v2_123456"}
{"a" "4999"}
{"abc" "4113"}
{"abcd" "2174"}
{"def" "7249"}
{"fghi" "5851"}
{"fghj" "3674"}
{"mnof" "1286"}
{"mnog" "0053"}
{"xy" "2113"}
{"xyz" "4113"}
]
get: {"" "5763"}
get: {"abcxyz" void}
get: {"abc" "4113"}
get: {"." void}
get: {"a" "4999"}
get: {"ab" void}
get: {"mno" void}
get: {"mnof" "1286"}
get: {"mnofx" void}
get: {"1234" void}
get: {"mnog" "0053"}
get: {"mnOg" void}
==
get: {"" "5763"}
get: {"123456" "v2_123456"}
get: {"a" "4999"}
get: {"abc" "4113"}
get: {"abcd" "2174"}
get: {"def" "7249"}
get: {"fghi" "5851"}
get: {"fghj" "3674"}
get: {"mnof" "1286"}
get: {"mnog" "0053"}
get: {"xy" "2113"}
get: {"xyz" "4113"}
{"abc" "4113"
void
void
}
get: {"abc" "4113"}
get: {"" void}
exit 0
==== test/b16.fxl
= test_gpg_sha256
result "E3B0C442 98FC1C14 9AFBF4C8 996FB924 27AE41E4 649B934C A495991B 7852B855"
result "CA978112 CA1BBDCA FAC231B3 9A23DC4D A786EFF8 147C4E72 B9807785 AFEE48BB"
result "BA7816BF 8F01CFEA 414140DE 5DAE2223 B00361A3 96177A9C B410FF61 F20015AD"
result "248D6A61 D20638B8 E5C02693 0C3E6039 A33CE459 64FF2167 F6ECEDD4 19DB06C1"
result "87CDEB38 0917879F CD4C3B86 9AD644CB C7CBC6FF 36B989CD 4FE0F812 3C13CA19"
result "8169C725 EDD39F00 140FFCF5 7C45B9C5 143E2FFE 375869E4 CF280534 2715D2B1"
result "FCC01087 70388F35 2679507F FCF73B79 716E81FF 5C20F9BF 5257AF73 7D001514"
result "CDC76E5C 9914FB92 81A1C7E2 84D73E67 F1809A48 A497200E 046D39CC C7112CD0"
exit 0
==== test/b17.fxl
[ test_run_function
out:
[
hello
x = 123
bye
]
err:
[
complain 1
complain 2
]
status: good
out:
[
]
err:
[
]
status: good
out:
[
hello
]
err:
[
oops
]
status: fail
out:
[
]
err:
[
The program ran out of memory.
]
status: fail
]
[ test_run_program
out:
[
hello
x = 11703
]
err:
[
complain
oops
]
status: fail
out:
[
BEG
END
]
err:
[
complain
]
status: good
]
[ test_big_output
grabbed 200000 bytes
]
exit 0
==== test/b18.fxl
== benchmark nested
inner: val 479 steps 29 bytes 264
outer: val 479 steps 154 bytes 712
== benchmark large list
result: val 32768 steps 3441900 bytes 1574280
== benchmark negative memory usage
result: val steps 8 bytes 55
exit 0
==== test/b19.fxl
{"7d13f23fa2b9a6fd" "1ba471e78e7bc03a"}
{"7d13f23fa2b9a6fd" "ffff"}
{"7d13f23fa2b9a6fd" "aaaaffff"}
first = {"0000c12dede9cee5" "594e7168faab41af"}
last = {"fff3334732f995ec" "d7a35717e00068d1"}
= group_items
xs = ["A" "b" "c" "b" "a" "a" "a" "B" "c" "d" "C" "b" "a" "a"]
ys = [{"a" ["A" "a" "a" "a" "a" "a"]} {"b" ["b" "b" "B" "b"]} {"c" ["c" "c" "C"]} {"d" ["d"]}]
= merge_keys
xs = [{"a" 1} {"b" 2} {"d" 4} {"g" 7}]
ys = [{"a" -1} {"c" -3} {"d" -4} {"e" -5} {"f" -6}]
L = [{"b" 2} {"g" 7}]
M = [{"a" {1 -1}} {"d" {4 -4}}]
R = [{"c" -3} {"e" -5} {"f" -6}]
= map_bytes_to_double
[0 0 0 0 0 0 0] => 0
[255 255 255 255 255 255 63] => 0.25
[255 255 255 255 255 255 127] => 0.5
[27 220 180 171 62 7 156] => 0.609485546989945
[255 255 255 255 255 255 191] => 0.75
[193 214 112 19 131 147 234] => 0.916313354727062
[255 255 255 255 255 255 255] => 1
exit 0
==== test/b20.fxl
= test bn_add
x = 0
y = 0
z = 0
x = 1
y = 1
z = 2
x = 10002
y = 10003
z = 20005
x = 12370356088
y = 15123
z = 12370371211
x = 123470356088
y = 15123
z = 123470371211
x = 26019123470356088
y = 1049752133674165355933
z = 1049778152797635712021
x = 999999999999999999999999
y = 999999999999999999999999
z = 1999999999999999999999998
x = 1111111111111111111111111111111111111111111111111
y = 1111111111111111111111111111111111111111111111111
z = 2222222222222222222222222222222222222222222222222
= test bn_mul
x = 0
y = 0
z = 0
x = 1
y = 1
z = 1
x = 10002
y = 10003
z = 100050006
x = 12370356088
y = 15123
z = 187076895118824
x = 123470356088
y = 15123
z = 1867242195118824
x = 26019123470356088
y = 1049752133674165355933
z = 27313630379337857282992990240773470104
x = 999999999999999999999999
y = 999999999999999999999999
z = 999999999999999999999998000000000000000000000001
x = 1111111111111111111111111111111111111111111111111
y = 1111111111111111111111111111111111111111111111111
z = 1234567901234567901234567901234567901234567901234320987654320987654320987654320987654320987654321
115792089237316195423570985008687907853269984665640564039457584007913129639936
78
= test str_bn
"0" "0"
"1" "1"
"1234" "1234"
"9999" "9999"
"00" "0"
"1234567890123456789012" "1234567890123456789012"
"1234567890" "1234567890"
"000000123" "123"
"" void
"x" void
"x1234" void
"12345abc90123456789012" void
exit 0
==== test/chars.fxl
==
封封aa小小
T
==
41 A 41
4f O 4f
4F O 4f
61 a 61
62 b 62
7e ~ 7e
c3a5 å c3a5
c3bc ü c3bc
c3a4 ä c3a4
C3A4 ä c3a4
e289a0 ≠ e289a0
e5b081 封 e5b081
e5b08f 小 e5b08f
e5b08161e5b08f 封a小 e5b08161e5b08f
==
28b98aa5dac67e29a98d2920f91500b6
28b98aa5dac67e29a98d2920f91500b6
2
6600f
exit 0
==== test/date.fxl
count_days 20160208 20160301 = 22
count_days 20160301 20160208 = -22
count_days 20160208 20160229 = 21
count_days 20160229 20160208 = -21
count_days 20160229 20160229 = 0
count_days 20160229 20160229 = 0
count_days 20160228 20170228 = 366
count_days 20170228 20160228 = -366
count_days 20170228 20180228 = 365
count_days 20180228 20170228 = -365
count_days 20160229 20160208 = -21
count_days 20160208 20160229 = 21
add_days 20160208 0 = 20160208 check 0 good
add_days 20160208 7 = 20160215 check 7 good
add_days 20160208 21 = 20160229 check 21 good
add_days 20160208 22 = 20160301 check 22 good
add_days 20160208 23 = 20160302 check 23 good
add_days 20160208 365 = 20170207 check 365 good
add_days 20160101 365 = 20161231 check 365 good
add_days 20170101 365 = 20180101 check 365 good
add_days 20160301 -1 = 20160229 check -1 good
add_days 20160302 -1 = 20160301 check -1 good
add_days 20160302 -2 = 20160229 check -2 good
add_days 20160302 -3 = 20160228 check -3 good
add_days 20160302 -23 = 20160208 check -23 good
add_days 20160302 -28 = 20160203 check -28 good
add_days 20160302 -29 = 20160202 check -29 good
add_days 20160302 -30 = 20160201 check -30 good
add_days 20160302 -365 = 20150303 check -365 good
dow 20160101 = 5
dow 20160104 = 1
dow 20160108 = 5
dow 20160115 = 5
dow 20160121 = 4
dow 20160129 = 5
dow 20160205 = 5
dow 20160212 = 5
dow 20160219 = 5
dow 20160226 = 5
dow 20160304 = 5
dow 20160311 = 5
dow 19631117 = 7
dow 19631118 = 1
dow 19631119 = 2
dow 19631120 = 3
dow 19631121 = 4
dow 19631122 = 5
dow 19631123 = 6
dow 19631124 = 7
dow 23000225 = 7
dow 23000226 = 1
dow 23000227 = 2
dow 23000228 = 3
dow 23000301 = 4
dow 23040225 = 4
dow 23040226 = 5
dow 23040227 = 6
dow 23040228 = 7
dow 23040229 = 1
dow 23040301 = 2
dow 23040302 = 3
dow 23040303 = 4
dow 23040306 = 7
add_year 20000228 = 20010228
add_year 20000229 = 20010229
add_year 20150228 = 20160228
add_year 20150301 = 20160301
exit 0
==== test/sat.fxl
SAT 0 T
[
[]
]
SAT 0 F
[
]
SAT 2 (\a\b and a b)
[
[TT]
]
SAT 2 (\a\b or a b)
[
[TT]
[TF]
[FT]
]
SAT 2 (\a\b or (not a) b)
[
[TT]
[FT]
[FF]
]
SAT 4 (\a\b\c\d (and (or (and a d) c) (not (and b d))))
[
[TTTF]
[TFTT]
[TFTF]
[TFFT]
[FTTF]
[FFTT]
[FFTF]
]
SAT 17 ...
[
[TTFTTFTTFTFTTTTTT]
]
exit 0
==== test/crypto.fxl
[ test_box
nacl_box_public
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
nacl_box_public
secret_key = 32:[d236189ec7c5afdd8a6b0ea9d2ff65cf444a30f5ccfc058c3e735c9877236798]
public_key = 32:[c9bb6ac9fbdb7024240a4703c04e5ea70b71aa112cacf77c0cab30c71175da6d]
= Test sending messages to self.
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_seal
plain_text = 22:[537465666669206973206120676f6f64206769726c2e]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
crypt_text = 38:[b9d3961d2b57f14e1d235a5065fd5e102021f6d6ef40f45341a60bff5cebaf4b31e53962aa0b]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_open
crypt_text = 38:[b9d3961d2b57f14e1d235a5065fd5e102021f6d6ef40f45341a60bff5cebaf4b31e53962aa0b]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
plain_text = 22:[537465666669206973206120676f6f64206769726c2e]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_seal
plain_text = 0:[]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
crypt_text = 16:[97590ad724760eebe5f184fced3d3739]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_open
crypt_text = 16:[97590ad724760eebe5f184fced3d3739]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
plain_text = 0:[]
= Test sending messages between two parties.
nacl_box_prepare
public_key = 32:[c9bb6ac9fbdb7024240a4703c04e5ea70b71aa112cacf77c0cab30c71175da6d]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_seal
plain_text = 22:[537465666669206973206120676f6f64206769726c2e]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
crypt_text = 38:[19e311bc843833223aa49560a91c253faa25b951b36952846531d81ab4f1b2b3c7e88d6e7719]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[d236189ec7c5afdd8a6b0ea9d2ff65cf444a30f5ccfc058c3e735c9877236798]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_open
crypt_text = 38:[19e311bc843833223aa49560a91c253faa25b951b36952846531d81ab4f1b2b3c7e88d6e7719]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
plain_text = 22:[537465666669206973206120676f6f64206769726c2e]
nacl_box_prepare
public_key = 32:[c9bb6ac9fbdb7024240a4703c04e5ea70b71aa112cacf77c0cab30c71175da6d]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_seal
plain_text = 26:[6162636465666768696a6b6c6d6e6f707172737475767778797a]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
crypt_text = 42:[2e6bff30ab69ba1a3e3276377dd9ba079833bf53b06615857f7bd256bef0b2a796fd97686e4168ca9cb7]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[d236189ec7c5afdd8a6b0ea9d2ff65cf444a30f5ccfc058c3e735c9877236798]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_open
crypt_text = 42:[2e6bff30ab69ba1a3e3276377dd9ba079833bf53b06615857f7bd256bef0b2a796fd97686e4168ca9cb7]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
plain_text = 26:[6162636465666768696a6b6c6d6e6f707172737475767778797a]
nacl_box_prepare
public_key = 32:[c9bb6ac9fbdb7024240a4703c04e5ea70b71aa112cacf77c0cab30c71175da6d]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_seal
plain_text = 0:[]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
crypt_text = 16:[76d01fae4659d2ca188dbd76638efc1c]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[d236189ec7c5afdd8a6b0ea9d2ff65cf444a30f5ccfc058c3e735c9877236798]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
nacl_box_open
crypt_text = 16:[76d01fae4659d2ca188dbd76638efc1c]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[91482b022a7de2602ef226b75dbd9f39fb45b1d3e19376e794154a29c3985563]
plain_text = 0:[]
= Test zero key and nonce.
nacl_box_public
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
public_key = 32:[2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74]
nacl_box_prepare
public_key = 32:[2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
nacl_box_seal
plain_text = 26:[6162636465666768696a6b6c6d6e6f707172737475767778797a]
nonce = 24:[000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
crypt_text = 42:[a9a5132d1692f0799af93a8c1b580ed2faf6d3f185879106919306ca6817c9299875057c1db95a633259]
nacl_box_prepare
public_key = 32:[2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
nacl_box_open
crypt_text = 42:[a9a5132d1692f0799af93a8c1b580ed2faf6d3f185879106919306ca6817c9299875057c1db95a633259]
nonce = 24:[000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
plain_text = 26:[6162636465666768696a6b6c6d6e6f707172737475767778797a]
nacl_box_prepare
public_key = 32:[2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
nacl_box_seal
plain_text = 0:[]
nonce = 24:[000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
crypt_text = 16:[d3844f115d9a6351e9ceef37c4f60496]
nacl_box_prepare
public_key = 32:[2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
nacl_box_open
crypt_text = 16:[d3844f115d9a6351e9ceef37c4f60496]
nonce = 24:[000000000000000000000000000000000000000000000000]
key = 32:[06174c3e4c2d02626d77b27044bdccb55e392cad4cba284ad7f472d503036ca8]
plain_text = 0:[]
= Test erroneous input.
nacl_box_public
secret_key = 31:[00000000000000000000000000000000000000000000000000000000000000]
public_key = void
nacl_box_prepare
public_key = void
secret_key = 31:[00000000000000000000000000000000000000000000000000000000000000]
key = void
nacl_box_seal
plain_text = 26:[6162636465666768696a6b6c6d6e6f707172737475767778797a]
nonce = 24:[000000000000000000000000000000000000000000000000]
key = void
crypt_text = void
nacl_box_prepare
public_key = void
secret_key = 31:[00000000000000000000000000000000000000000000000000000000000000]
key = void
nacl_box_open
crypt_text = void
nonce = 24:[000000000000000000000000000000000000000000000000]
key = void
plain_text = void
nacl_box_public
secret_key = 0:[]
public_key = void
nacl_box_prepare
public_key = void
secret_key = 0:[]
key = void
nacl_box_seal
plain_text = 0:[]
nonce = 0:[]
key = void
crypt_text = void
nacl_box_prepare
public_key = void
secret_key = 0:[]
key = void
nacl_box_open
crypt_text = void
nonce = 0:[]
key = void
plain_text = void
= Test making signing keys.
nacl_sign_public
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
nacl_sign_public
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
nacl_sign_public
secret_key = 32:[ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff]
public_key = 32:[76a1592044a6e4f511265bca73a604d90b0529d1df602be30a19a9257660d1f5]
nacl_sign_public
secret_key = 2:[a0b2]
public_key = void
= Test specific cases of nacl_box_open.
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_open
crypt_text = 38:[b9d3961d2b57f14e1d235a5065fd5e102021f6d6ef40f45341a60bff5cebaf4b31e53962aa0b]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
plain_text = 22:[537465666669206973206120676f6f64206769726c2e]
nacl_box_prepare
public_key = 32:[d07a6e764d2e78523e849b35f348458e4c3445676b705ee9c3d5dc56d6401636]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23616263]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
nacl_box_open
crypt_text = 3:[b9d396]
nonce = 24:[6465666768696a6b6c6d6e6f707172737475767778797a0a]
key = 32:[93aeec433ebc694bdfbe1c992ebd42a39c5c63593745e48145fcd36953eeaa35]
plain_text = void
]
[ test_sign
= Test seal and open.
nacl_sign_seal
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = T
nacl_sign_seal
text = 4:[61626364]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
signature = 64:[839dee2853f913bffbe10a015973e41be4073eaf9c9c7aceb68cebb159bcb7ff6e5b9d7487b6d951876fe76162e1e9550143bd5cba8826bcdd75be1beda8b604]
nacl_sign_open
text = 4:[61626364]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[839dee2853f913bffbe10a015973e41be4073eaf9c9c7aceb68cebb159bcb7ff6e5b9d7487b6d951876fe76162e1e9550143bd5cba8826bcdd75be1beda8b604]
valid = T
nacl_sign_seal
text = 0:[]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
signature = 64:[cb620299375d80a87df8efa909e9b264dbeda42c94e48819bf22266d2672a62d2ac5b97a535aac981db9de87f26bcb92d0244a8640ae07c8549809d04a385d0e]
nacl_sign_open
text = 0:[]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[cb620299375d80a87df8efa909e9b264dbeda42c94e48819bf22266d2672a62d2ac5b97a535aac981db9de87f26bcb92d0244a8640ae07c8549809d04a385d0e]
valid = T
nacl_sign_seal
text = 2:[ffff]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
signature = 64:[7d116f385c4f33e51d367113d03da93744c0b8c9e4f8a7af39d3f6488bb555052615d81581311e6b2585f8ef3a378ef15ed6afa4163ebadc07dfa08fc74b0508]
nacl_sign_open
text = 2:[ffff]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
signature = 64:[7d116f385c4f33e51d367113d03da93744c0b8c9e4f8a7af39d3f6488bb555052615d81581311e6b2585f8ef3a378ef15ed6afa4163ebadc07dfa08fc74b0508]
valid = T
nacl_sign_seal
text = 2:[0000]
public_key = 32:[76a1592044a6e4f511265bca73a604d90b0529d1df602be30a19a9257660d1f5]
secret_key = 32:[ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff]
signature = 64:[89bb0d0289a8f8dfc73728e846b1f3257d06c26c7c869efafbff2c064017e384ead2ee780a4630e7bce2fda33e84d80f31d9c7a402e32d08eeac45f0d4c4540a]
nacl_sign_open
text = 2:[0000]
public_key = 32:[76a1592044a6e4f511265bca73a604d90b0529d1df602be30a19a9257660d1f5]
signature = 64:[89bb0d0289a8f8dfc73728e846b1f3257d06c26c7c869efafbff2c064017e384ead2ee780a4630e7bce2fda33e84d80f31d9c7a402e32d08eeac45f0d4c4540a]
valid = T
= Test specific cases of nacl_sign_seal.
== Good.
nacl_sign_seal
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = T
== Good.
nacl_sign_seal
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
secret_key = 32:[0000000000000000000000000000000000000000000000000000000000000000]
signature = 64:[51b7a478ab16320106b024a4a9153f49e7f51d38077ad58c2068c3df43fdb82a5c32e0f2b1ea700c7507c4800060098bdb1b3b9b6f614352fd18561d3de5cf0a]
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
signature = 64:[51b7a478ab16320106b024a4a9153f49e7f51d38077ad58c2068c3df43fdb82a5c32e0f2b1ea700c7507c4800060098bdb1b3b9b6f614352fd18561d3de5cf0a]
valid = T
== Mismatched public and secret key
nacl_sign_seal
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
secret_key = 32:[236162636465666768696a6b6c6d6e6f707172737475767778797a0a23205e20]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94554d400362a53ef14bb695640e9f7b5a677c1e3a6dd2993bd8f5aeb938de5902]
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94554d400362a53ef14bb695640e9f7b5a677c1e3a6dd2993bd8f5aeb938de5902]
valid = F
= Test specific cases of nacl_sign_open.
== Good
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = T
== Wrong text
nacl_sign_open
text = 22:[637465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = F
== Wrong public key
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[d34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = F
== Wrong signature
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040b]
valid = F
== Wrong size public key
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 31:[4ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 64:[7de154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = F
== Wrong size signature
nacl_sign_open
text = 22:[537465666669206973206120676f6f64206769726c2e]
public_key = 32:[c34ceaf901d5010541e4daf3958ee69a04a5064335709d33377204d60a2a0872]
signature = 63:[e154f364ed7fa959ed814cd23d557901f6a581931399cdd415ff55cdad9b94da46503cc58aeac9f8b5f33ec5f944327356ba1c6ee2313e951d781c6fe1040a]
valid = F
]
[ test_sha512
sha512
text = 0:[]
hash = 64:[cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e]
sha512
text = 1:[61]
hash = 64:[1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75]
sha512
text = 3:[616263]
hash = 64:[ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f]
sha512
text = (111 'a')
hash = 64:[fa9121c7b32b9e01733d034cfc78cbf67f926c7ed83e82200ef86818196921760b4beff48404df811b953828274461673c68d04e297b0eb7b2b4d60fc6b566a2]
sha512
text = (112 'a')
hash = 64:[c01d080efd492776a1c43bd23dd99d0a2e626d481e16782e75d54c2503b5dc32bd05f0f1ba33e568b88fd2d970929b719ecbb152f58f130a407c8830604b70ca]
sha512
text = 56:[6162636462636465636465666465666765666768666768696768696a68696a6b696a6b6c6a6b6c6d6b6c6d6e6c6d6e6f6d6e6f706e6f7071]
hash = 64:[204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445]
sha512
text = 112:[61626364656667686263646566676869636465666768696a6465666768696a6b65666768696a6b6c666768696a6b6c6d6768696a6b6c6d6e68696a6b6c6d6e6f696a6b6c6d6e6f706a6b6c6d6e6f70716b6c6d6e6f7071726c6d6e6f707172736d6e6f70717273746e6f707172737475]
hash = 64:[8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909]
sha512
text = (1,000,000 'a')
hash = 64:[e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b]
]
[ test_sha256
sha256
text = 0:[]
hash = 32:[e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855]
sha256
text = 1:[61]
hash = 32:[ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb]
sha256
text = 3:[616263]
hash = 32:[ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad]
sha256
text = 55:[31323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536373839303132333435]
hash = 32:[03c3a70e99ed5eeccd80f73771fcf1ece643d939d9ecc76f25544b0233f708e9]
sha256
text = 56:[3132333435363738393031323334353637383930313233343536373839303132333435363738393031323334353637383930313233343536]
hash = 32:[0be66ce72c2467e793202906000672306661791622e0ca9adf4a8955b2ed189c]
sha256
text = 56:[6162636462636465636465666465666765666768666768696768696a68696a6b696a6b6c6a6b6c6d6b6c6d6e6c6d6e6f6d6e6f706e6f7071]
hash = 32:[248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1]
sha256
text = 112:[61626364656667686263646566676869636465666768696a6465666768696a6b65666768696a6b6c666768696a6b6c6d6768696a6b6c6d6e68696a6b6c6d6e6f696a6b6c6d6e6f706a6b6c6d6e6f70716b6c6d6e6f7071726c6d6e6f707172736d6e6f70717273746e6f707172737475]
hash = 32:[cf5b16a778af8380036ce59e7b0492370b249b11e8f07a51afac45037afee9d1]
sha256
text = (127 'z')
hash = 32:[87cdeb380917879fcd4c3b869ad644cbc7cbc6ff36b989cd4fe0f8123c13ca19]
sha256
text = (128 'z')
hash = 32:[8169c725edd39f00140ffcf57c45b9c5143e2ffe375869e4cf2805342715d2b1]
sha256
text = (256 'z')
hash = 32:[fcc0108770388f352679507ffcf73b79716e81ff5c20f9bf5257af737d001514]
sha256
text = (1,000,000 'a')
hash = 32:[cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0]
]
[ base64
[ base64 unpack/pack
text 0:""
u_text 0:""
text 1:"M"
u_text 4:"TQ=="
text 2:"Ma"
u_text 4:"TWE="
text 2:"Ma"
u_text 4:"TWE="
text 3:"Man"
u_text 4:"TWFu"
text 1:"f"
u_text 4:"Zg=="
text 2:"fo"
u_text 4:"Zm8="
text 3:"foo"
u_text 4:"Zm9v"
text 4:"foob"
u_text 8:"Zm9vYg=="
text 5:"fooba"
u_text 8:"Zm9vYmE="
text 6:"foobar"
u_text 8:"Zm9vYmFy"
text 269:"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure."
u_text 360:"TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4="
text 0:""
u_text 0:""
text 1:"1"
u_text 4:"MQ=="
text 2:"12"
u_text 4:"MTI="
text 3:"123"
u_text 4:"MTIz"
text 4:"1234"
u_text 8:"MTIzNA=="
text 5:"12345"
u_text 8:"MTIzNDU="
text 6:"123456"
u_text 8:"MTIzNDU2"
text 7:"1234567"
u_text 12:"MTIzNDU2Nw=="
text 8:"12345678"
u_text 12:"MTIzNDU2Nzg="
text 1:[ff]
u_text 4:"/w=="
text 1:[00]
u_text 4:"AA=="
text 2:[0000]
u_text 4:"AAA="
text 3:[000000]
u_text 4:"AAAA"
text 7:[00010203040506]
u_text 12:"AAECAwQFBg=="
text 3:[ff00fe]
u_text 4:"/wD+"
]
[ base64 pack
u_text 0:""
text 0:[]
u_text 4:"AA=="
text 1:[00]
u_text 12:"MTIzNDU2Nzg="
text 8:"12345678"
u_text 12:"AAECAwQFBg=="
text 7:[00010203040506]
= Try without padding.
u_text 3:"AA="
text 1:[00]
u_text 2:"AA"
text 1:[00]
u_text 11:"MTIzNDU2Nzg"
text 8:"12345678"
u_text 11:"AAECAwQFBg="
text 7:[00010203040506]
u_text 10:"AAECAwQFBg"
text 7:[00010203040506]
= Try strange length.
u_text 10:"MTIzNDU2Nz"
text 7:"1234567"
u_text 9:"MTIzNDU2N"
text 6:"123456"
u_text 8:"MTIzNDU2"
text 6:"123456"
u_text 7:"MTIzNDU"
text 5:"12345"
u_text 6:"MTIzND"
text 4:"1234"
= Try chars out of range.
u_text 1:"_"
text 0:[]
u_text 2:"_^"
text 1:[00]
u_text 6:"_^=-()"
text 4:[00000000]
u_text 2:"=="
text 0:[]
]
]
exit 0
==== test/get_byte.fxl
[
ch 61
ch 62
ch 63
ch 41
ch 42
ch 43
ch 0a
ch 6a
ch 6a
ch 6a
ch 61
ch e5
ch b0
ch 8f
ch 0a
ch c3
ch a5
ch c3
ch bc
ch c3
ch a4
ch e2
ch 89
ch a0
ch 0a
ch e5
ch 8c
ch 85
ch e5
ch ad
ch 90
ch 0a
]
exit 0
====
hi
exit 1
====
Unclosed string on line 1
exit 1
====
Unclosed string on line 2
exit 1
====
Unclosed string on line 1
exit 1
====
Unclosed string on line 3
exit 1
====
Incomplete string terminator on line 1
exit 1
====
Unclosed string on line 1
exit 1
====
Incomplete string terminator on line 1
exit 1
====
Missing name declaration before '=' on line 1
exit 1
====
Missing name after '\' on line 1
exit 1
====
Missing definition on line 1
exit 1
====
Unclosed parenthesis on line 3
exit 1
====
Unclosed parenthesis on line 1
exit 1
====
Unclosed bracket on line 3
exit 1
====
Unclosed brace on line 3
exit 1
====
Extraneous input on line 2
exit 1
====
Undefined symbol a on line 2
Undefined symbol b on line 2
Undefined symbol c on line 2
Undefined symbol b on line 2
Undefined symbol c on line 2
Undefined symbol d on line 2
Undefined symbol a on line 3
Undefined symbol b on line 3
Undefined symbol c on line 3
Undefined symbol b on line 3
Undefined symbol c on line 3
Undefined symbol d on line 3
Undefined symbol x on line 5
exit 1
====
Undefined symbol a on line 1
Undefined symbol a on line 2
Undefined symbol c on line 2
Undefined symbol c on line 3
exit 1
==== missing.fxl
Could not open source file missing.fxl
exit 1
====
Could not open source file missing.fxl
exit 1
You can’t perform that action at this time.