]> gitweb.factorcode.org Git - factor.git/commitdiff
unicode.flags: Add a way to get valid flags, fix using
authorDoug Coleman <doug.coleman@gmail.com>
Fri, 28 Jan 2022 03:52:54 +0000 (21:52 -0600)
committerDoug Coleman <doug.coleman@gmail.com>
Fri, 28 Jan 2022 03:52:54 +0000 (21:52 -0600)
extra/unicode/flags/flags-tests.factor
extra/unicode/flags/flags.factor
extra/unicode/flags/images/authors.txt [new file with mode: 0644]
extra/unicode/flags/images/images-tests.factor [new file with mode: 0644]
extra/unicode/flags/images/images.factor [new file with mode: 0644]

index cb545720ffe4c672b7559daf3f64fb322587e59b..7cde4534be38c12465a2d6079edf5e3df9ca6990 100644 (file)
@@ -1,3 +1,3 @@
-USING: flags tools.test ;
+USING: unicode.flags tools.test ;
 
 { "πŸ‡ΊπŸ‡Έ" } [ "us" unicode-flag ] unit-test
index 5dc523b39a832ca76a82874fa6b0c8c51c99ccd9..05e62a61cf12afc598860b9124c46b97b1a2012a 100644 (file)
@@ -1,8 +1,8 @@
-USING: ascii assocs sequences ;
+USING: accessors ascii assocs biassocs sequences ;
 
 IN: unicode.flags
 
-CONSTANT: flag-codes H{
+MEMO: flag-codes ( -- biassoc ) H{
     { CHAR: A CHAR: πŸ‡¦ }
     { CHAR: B CHAR: πŸ‡§ }
     { CHAR: C CHAR: πŸ‡¨ }
@@ -29,7 +29,10 @@ CONSTANT: flag-codes H{
     { CHAR: X CHAR: πŸ‡½ }
     { CHAR: Y CHAR: πŸ‡Ύ }
     { CHAR: Z CHAR: πŸ‡Ώ }
-}
+} >biassoc ;
 
-: unicode-flag ( country-code -- flag )
-    >upper [ flag-codes at ] map ;
+: unicode>flag ( country-code -- flag )
+    >upper [ flag-codes from>> at ] map ;
+
+: flag>unicode ( flag -- country-code )
+    [ flag-codes to>> at ] map ;
diff --git a/extra/unicode/flags/images/authors.txt b/extra/unicode/flags/images/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/extra/unicode/flags/images/images-tests.factor b/extra/unicode/flags/images/images-tests.factor
new file mode 100644 (file)
index 0000000..9305545
--- /dev/null
@@ -0,0 +1,6 @@
+! Copyright (C) 2022 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: kernel tools.test unicode.flags.images ;
+IN: unicode.flags.images.tests
+
+{ } [ valid-flag-biassoc drop ] unit-test
\ No newline at end of file
diff --git a/extra/unicode/flags/images/images.factor b/extra/unicode/flags/images/images.factor
new file mode 100644 (file)
index 0000000..5695648
--- /dev/null
@@ -0,0 +1,16 @@
+! Copyright (C) 2022 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors assocs biassocs fonts kernel math.combinatorics
+ranges sequences sequences.extras strings ui.text unicode.flags ;
+IN: unicode.flags.images
+
+MEMO: valid-flags ( -- flags )
+    CHAR: a CHAR: z [a..b] 2 <k-permutations>
+    [ >string unicode>flag ]
+    [ monospace-font swap string>image drop dim>> first2 = ] map-filter ;
+
+: valid-flag-names ( -- seq )
+    valid-flags [ flag>unicode ] map ;
+
+: valid-flag-biassoc ( -- biassoc )
+    valid-flags valid-flag-names zip >biassoc ;