/- asn1 /+ der, *test |% ++ test-asn1-der =/ nul=spec:asn1 [%nul ~] =/ int=spec:asn1 [%int 187] =/ obj=spec:asn1 [%obj sha-256:obj:asn1] =/ oct=spec:asn1 [%oct 32 (shax 'hello\0a')] =/ seq=spec:asn1 [%seq [%seq obj nul ~] oct ~] ;: weld %+ expect-eq !> [0x5 0x0 ~] !> ~(ren raw:en:der nul) :: %+ expect-eq !> nul !> (scan ~(ren raw:en:der nul) parse:de:der) :: %+ expect-eq !> [0x2 0x2 0x0 0xbb ~] !> ~(ren raw:en:der int) :: %+ expect-eq !> int !> (scan ~(ren raw:en:der int) parse:de:der) :: %+ expect-eq !> [0x6 0x9 0x60 0x86 0x48 0x1 0x65 0x3 0x4 0x2 0x1 ~] !> ~(ren raw:en:der obj) :: %+ expect-eq !> obj !> (scan ~(ren raw:en:der obj) parse:de:der) :: %+ expect-eq !> 0x420.5891.b5b5.22d5.df08.6d0f.f0b1.10fb. d9d2.1bb4.fc71.63af.34d0.8286.a2e8.46f6.be03 !> `@ux`(swp 3 +:(en:der oct)) :: %+ expect-eq !> oct !> (scan ~(ren raw:en:der oct) parse:de:der) :: %+ expect-eq !> 0x30.3130.0d06.0960.8648.0165.0304.0201.0500.0420.5891.b5b5.22d5. df08.6d0f.f0b1.10fb.d9d2.1bb4.fc71.63af.34d0.8286.a2e8.46f6.be03 !> `@ux`(swp 3 +:(en:der seq)) :: %+ expect-eq !> seq !> (scan ~(ren raw:en:der seq) parse:de:der) == --