about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2015-01-13 19:25:03 -0800
committerKartik K. Agaram <vc@akkartik.com>2015-01-13 19:25:03 -0800
commit0c1450438fcb0fe3f53fcb9268f2f2c0708bb252 (patch)
tree597df6cfac15c6f22f35a08f8d5500beae4fbae0
parent93d5dce626c6903d289338a822457401634de021 (diff)
downloadmu-0c1450438fcb0fe3f53fcb9268f2f2c0708bb252.tar.gz
547 - hacky initial tests for reading chess moves
-rw-r--r--chessboard-cursor.arc.t49
1 files changed, 49 insertions, 0 deletions
diff --git a/chessboard-cursor.arc.t b/chessboard-cursor.arc.t
new file mode 100644
index 00000000..1b83ac1e
--- /dev/null
+++ b/chessboard-cursor.arc.t
@@ -0,0 +1,49 @@
+(selective-load "mu.arc" section-level)
+
+(reset)
+(new-trace "read-move-legal")
+(add-code:readfile "chessboard-cursor.mu")
+(add-code
+  '((function! main [
+      (default-space:space-address <- new space:literal 30:literal/capacity)
+      (1:channel-address/raw <- init-channel 3:literal)
+      (r:integer/routine <- fork-helper read-move:fn nil:literal/globals nil:literal/limit)
+      (c:character <- copy ((#\a literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (c:character <- copy ((#\2 literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (c:character <- copy ((#\- literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (c:character <- copy ((#\a literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (c:character <- copy ((#\4 literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (sleep until-routine-done:literal r:integer/routine)
+     ])))
+(run 'main)
+(if (~ran-to-completion 'main)
+  (prn "F - chessboard accepts legal move a2-a4"))
+
+(reset)
+(new-trace "read-move-quit")
+(add-code:readfile "chessboard-cursor.mu")
+(add-code
+  '((function! main [
+      (default-space:space-address <- new space:literal 30:literal/capacity)
+      (1:channel-address/raw <- init-channel 3:literal)
+      (r:integer/routine <- fork-helper read-move:fn nil:literal/globals nil:literal/limit)
+      (c:character <- copy ((#\q literal)))
+      (x:tagged-value <- save-type c:character)
+      (1:channel-address/raw/deref <- write 1:channel-address/raw x:tagged-value)
+      (sleep until-routine-done:literal r:integer/routine)
+     ])))
+(run 'main)
+(if (~ran-to-completion 'main)
+  (prn "F - chessboard quits on move starting with 'q'"))
+
+(reset)