Stop using vector-empty?
[tt.git] / tt.rkt
diff --git a/tt.rkt b/tt.rkt
index b11364f..421af36 100644 (file)
--- a/tt.rkt
+++ b/tt.rkt
@@ -34,6 +34,9 @@
 ; - d | download
 ; - u | upload
 ;   - calls user-configured command to upload user's own feed file to their server
+;
+; Looks like a better CLI parser than "racket/cmdline":
+; https://docs.racket-lang.org/natural-cli/
 
 #lang racket
 
 (require http-client)
 (require rfc3339-old)
 
+(module+ test
+  (require rackunit))
+
 (struct msg  (ts_epoch ts_rfc3339 nick uri text))
 (struct feed (nick uri))
 
 (define (concurrent-filter-map num_workers f xs)
+  ; TODO preserve order of elements OR communicate that reorder is expected
   ; TODO switch from mailboxes to channels
   (define (make-worker id f)
     (define parent (current-thread))
   (for-each thread-wait threads)
   results)
 
+(module+ test
+  (define n-workers 10)
+  (define given (list
+                  (λ (x) (if (even? x) x #f))
+                  (range 11)))
+  (check-equal?
+    (sort (apply concurrent-filter-map (cons n-workers given)) <)
+    (sort (apply            filter-map                 given ) <)))
+
 (define (msg-print out-format odd msg)
   (printf
     (match out-format
 (define user-agent
   (let*
     ([prog-name      "tt"]
-     [prog-version   "0.3.4"]
+     [prog-version   "0.3.5"]
      [prog-uri       "https://github.com/xandkar/tt"]
      [user-feed-file (expand-user-path "~/twtxt-me.txt")]
      [user
 
   (define args (current-command-line-arguments))
   (define feeds
-    (if (vector-empty? args)
+    (if (= 0 (vector-length args))
       (we-are-twtxt)
       (file->feeds (vector-ref args 0))))
   (define out-format 'multi-line)
This page took 0.025571 seconds and 4 git commands to generate.