mirror of
https://github.com/urbit/shrub.git
synced 2024-12-21 01:41:37 +03:00
1647d760d1
Also updates existing tests to check both en- and decoding.
58 lines
1.0 KiB
Plaintext
58 lines
1.0 KiB
Plaintext
::NOTE tests lightly modified from the examples here:
|
|
:: https://github.com/ethereum/wiki/wiki/RLP
|
|
::
|
|
/+ *test
|
|
=, rlp:ethereum
|
|
::
|
|
=/ vectors=(list [nom=tape dat=@ rlp=item])
|
|
:~ :+ "string"
|
|
0x83aa.bbcc
|
|
b+3^0xaa.bbcc
|
|
::
|
|
:+ "list"
|
|
0xc8.83aa.bbcc.83dd.eeff
|
|
l+~[b+3^0xaa.bbcc b+3^0xdd.eeff]
|
|
::
|
|
:+ "empty list"
|
|
0xc0
|
|
l+~
|
|
::
|
|
:+ "zero byte"
|
|
0x0
|
|
b+1^0x0
|
|
::
|
|
:+ "empty zero"
|
|
0x80
|
|
b+0^0x0
|
|
::
|
|
:+ "value 15"
|
|
0xf
|
|
b+1^0xf
|
|
::
|
|
:+ "value 1024"
|
|
0x82.0400
|
|
b+2^0x400
|
|
::
|
|
:+ "set of three"
|
|
0xc7c0.c1c0.c3c0.c1c0
|
|
l+[l+~ l+[l+~ ~] l+[l+~ l+[l+~ ~] ~] ~]
|
|
==
|
|
::
|
|
|%
|
|
++ test-all-vectors
|
|
|- ^- tang
|
|
?~ vectors ~
|
|
%+ weld $(vectors t.vectors)
|
|
=, i.vectors
|
|
%+ category nom
|
|
%+ weld
|
|
%+ category "encode"
|
|
%+ expect-eq
|
|
!> dat
|
|
!> (encode rlp)
|
|
%+ category "decode"
|
|
%+ expect-eq
|
|
!> rlp
|
|
!> (decode dat)
|
|
--
|