about summary refs log tree commit diff
path: root/e2e-tests/tools/spell-check.scm
diff options
context:
space:
mode:
authorArun Isaac2025-08-28 20:09:50 +0100
committerArun Isaac2025-11-16 22:42:59 +0000
commit767f80e7296c41a4428c73cadc90b953d252f8d7 (patch)
treece32736718146b2c01dd27c5627503786f33b505 /e2e-tests/tools/spell-check.scm
parent8b4d0320cbc2f07c9040aee7b6e7e4fb1fe08a91 (diff)
downloadravanan-767f80e7296c41a4428c73cadc90b953d252f8d7.tar.gz
ravanan-767f80e7296c41a4428c73cadc90b953d252f8d7.tar.lz
ravanan-767f80e7296c41a4428c73cadc90b953d252f8d7.zip
e2e-tests: Add tests based off of examples in the ccwl manual.
Diffstat (limited to 'e2e-tests/tools/spell-check.scm')
-rw-r--r--e2e-tests/tools/spell-check.scm33
1 files changed, 33 insertions, 0 deletions
diff --git a/e2e-tests/tools/spell-check.scm b/e2e-tests/tools/spell-check.scm
new file mode 100644
index 0000000..d5ccebb
--- /dev/null
+++ b/e2e-tests/tools/spell-check.scm
@@ -0,0 +1,33 @@
+(define split-words
+  (command #:inputs text
+           #:run "tr" "--complement" "--squeeze-repeats" "A-Za-z" "\\n"
+           #:stdin text
+           #:outputs (words #:type stdout)))
+
+(define downcase
+  (command #:inputs words
+           #:run "tr" "A-Z" "a-z"
+           #:stdin words
+           #:outputs (downcased-words #:type stdout)))
+
+(define sort
+  (command #:inputs words
+           #:run "sort" "--unique"
+           #:stdin words
+           #:outputs (sorted #:type stdout)))
+ 
+(define find-misspellings
+  (command #:inputs words dictionary
+           #:run "comm" "-23" words dictionary
+           #:outputs (misspellings #:type stdout)
+           #:stdout "misspelt-words"))
+
+(workflow (text-file dictionary)
+  (pipe (tee (pipe (split-words #:text text-file)
+                   (downcase #:words words)
+                   (sort (sort-words) #:words downcased-words)
+                   (rename #:sorted-words sorted))
+             (pipe (sort (sort-dictionary) #:words dictionary)
+                   (rename #:sorted-dictionary sorted)))
+        (find-misspellings #:words sorted-words
+                           #:dictionary sorted-dictionary)))