]> gitweb.factorcode.org Git - factor.git/commitdiff
base16/32/64: adding test cases from RFC 4648.
authorJohn Benediktsson <mrjbq7@gmail.com>
Thu, 26 Jan 2023 06:06:26 +0000 (22:06 -0800)
committerJohn Benediktsson <mrjbq7@gmail.com>
Thu, 26 Jan 2023 06:06:26 +0000 (22:06 -0800)
basis/base64/base64-tests.factor
extra/base16/base16-tests.factor
extra/base32/base32-tests.factor
extra/base32hex/base32hex-tests.factor

index ef7e809c8836689bd89f170d594793e760683d0a..cf2e33aabceac22832e5f339323efac3bd4c6028 100644 (file)
@@ -54,3 +54,18 @@ kernel sequences splitting strings tools.test ;
 { "{\"a\":\"bcd\"}" }
 [ "{\"a\":\"bcd\"}" >urlsafe-base64-jwt urlsafe-base64> >string ] unit-test
 
+{ "" } [ "" >base64 >string ] unit-test
+{ "Zg==" } [ "f" >base64 >string ] unit-test
+{ "Zm8=" } [ "fo" >base64 >string ] unit-test
+{ "Zm9v" } [ "foo" >base64 >string ] unit-test
+{ "Zm9vYg==" } [ "foob" >base64 >string ] unit-test
+{ "Zm9vYmE=" } [ "fooba" >base64 >string ] unit-test
+{ "Zm9vYmFy" } [ "foobar" >base64 >string ] unit-test
+
+{ "" } [ "" base64> >string ] unit-test
+{ "f" } [ "Zg==" base64> >string ] unit-test
+{ "fo" } [ "Zm8=" base64> >string ] unit-test
+{ "foo" } [ "Zm9v" base64> >string ] unit-test
+{ "foob" } [ "Zm9vYg==" base64> >string ] unit-test
+{ "fooba" } [ "Zm9vYmE=" base64> >string ] unit-test
+{ "foobar" } [ "Zm9vYmFy" base64> >string ] unit-test
index 890fde8bf447a940d40d51a81e97b5f3f4ebf995..8afd8002737b5240340382e31844b0232a53b3c9 100644 (file)
@@ -1,4 +1,4 @@
-USING: base16 byte-arrays kernel sequences tools.test ;
+USING: base16 byte-arrays kernel sequences strings tools.test ;
 
 { t } [ 256 <iota> >byte-array dup >base16 base16> = ] unit-test
 
@@ -12,3 +12,19 @@ USING: base16 byte-arrays kernel sequences tools.test ;
 
 [ "0" base16> ] [ malformed-base16? ] must-fail-with
 [ "Z" base16> ] [ malformed-base16? ] must-fail-with
+
+{ "" } [ "" >base16 >string ] unit-test
+{ "66" } [ "f" >base16 >string ] unit-test
+{ "666F" } [ "fo" >base16 >string ] unit-test
+{ "666F6F" } [ "foo" >base16 >string ] unit-test
+{ "666F6F62" } [ "foob" >base16 >string ] unit-test
+{ "666F6F6261" } [ "fooba" >base16 >string ] unit-test
+{ "666F6F626172" } [ "foobar" >base16 >string ] unit-test
+
+{ "" } [ "" base16> >string ] unit-test
+{ "f" } [ "66" base16> >string ] unit-test
+{ "fo" } [ "666F" base16> >string ] unit-test
+{ "foo" } [ "666F6F" base16> >string ] unit-test
+{ "foob" } [ "666F6F62" base16> >string ] unit-test
+{ "fooba" } [ "666F6F6261" base16> >string ] unit-test
+{ "foobar" } [ "666F6F626172" base16> >string ] unit-test
index 20fd7d338473f029bc605f31a898bbdcc7474570..67e68e1c5852ed7da8d87c358c6a1f1cb17ece33 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2019 John Benediktsson
 ! See https://factorcode.org/license.txt for BSD license
 
-USING: base32 byte-arrays kernel sequences tools.test ;
+USING: base32 byte-arrays kernel sequences strings tools.test ;
 
 { t } [ 256 <iota> >byte-array dup >base32 base32> = ] unit-test
 
@@ -22,3 +22,19 @@ USING: base32 byte-arrays kernel sequences tools.test ;
 { "abc" } [ "MFRGG===" base32> "" like ] unit-test
 { "abcd" } [ "MFRGGZA=" base32> "" like ] unit-test
 { "abcde" } [ "MFRGGZDF" base32> "" like ] unit-test
+
+{ "" } [ "" >base32 >string ] unit-test
+{ "MY======" } [ "f" >base32 >string ] unit-test
+{ "MZXQ====" } [ "fo" >base32 >string ] unit-test
+{ "MZXW6===" } [ "foo" >base32 >string ] unit-test
+{ "MZXW6YQ=" } [ "foob" >base32 >string ] unit-test
+{ "MZXW6YTB" } [ "fooba" >base32 >string ] unit-test
+{ "MZXW6YTBOI======" } [ "foobar" >base32 >string ] unit-test
+
+{ "" } [ "" base32> >string ] unit-test
+{ "f" } [ "MY======" base32> >string ] unit-test
+{ "fo" } [ "MZXQ====" base32> >string ] unit-test
+{ "foo" } [ "MZXW6===" base32> >string ] unit-test
+{ "foob" } [ "MZXW6YQ=" base32> >string ] unit-test
+{ "fooba" } [ "MZXW6YTB" base32> >string ] unit-test
+{ "foobar" } [ "MZXW6YTBOI======" base32> >string ] unit-test
index a9f947af5f52fd8182f0f99f23332b514948733e..3634bca278bb424629b02d59bf3bb46574ff96e8 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2022 John Benediktsson
 ! See https://factorcode.org/license.txt for BSD license
 
-USING: base32hex byte-arrays kernel sequences tools.test ;
+USING: base32hex byte-arrays kernel sequences strings tools.test ;
 
 { t } [ 256 <iota> >byte-array dup >base32hex base32hex> = ] unit-test
 
@@ -22,3 +22,19 @@ USING: base32hex byte-arrays kernel sequences tools.test ;
 { "abc" } [ "C5H66===" base32hex> "" like ] unit-test
 { "abcd" } [ "C5H66P0=" base32hex> "" like ] unit-test
 { "abcde" } [ "C5H66P35" base32hex> "" like ] unit-test
+
+{ "" } [ "" >base32hex >string ] unit-test
+{ "CO======" } [ "f" >base32hex >string ] unit-test
+{ "CPNG====" } [ "fo" >base32hex >string ] unit-test
+{ "CPNMU===" } [ "foo" >base32hex >string ] unit-test
+{ "CPNMUOG=" } [ "foob" >base32hex >string ] unit-test
+{ "CPNMUOJ1" } [ "fooba" >base32hex >string ] unit-test
+{ "CPNMUOJ1E8======" } [ "foobar" >base32hex >string ] unit-test
+
+{ "" } [ "" base32hex> >string ] unit-test
+{ "f" } [ "CO======" base32hex> >string ] unit-test
+{ "fo" } [ "CPNG====" base32hex> >string ] unit-test
+{ "foo" } [ "CPNMU===" base32hex> >string ] unit-test
+{ "foob" } [ "CPNMUOG=" base32hex> >string ] unit-test
+{ "fooba" } [ "CPNMUOJ1" base32hex> >string ] unit-test
+{ "foobar" } [ "CPNMUOJ1E8======" base32hex> >string ] unit-test