about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--test/lmm-integration-tests.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/lmm-integration-tests.scm b/test/lmm-integration-tests.scm
new file mode 100644
index 0000000..7b9ca3e
--- /dev/null
+++ b/test/lmm-integration-tests.scm
@@ -0,0 +1,42 @@
+#!/bin/sh
+# -*- mode: scheme; -*-
+exec guile --debug -s "$0" "$@"
+!#
+
+(define-module (test-runner)
+  #:use-module (ice-9 match)
+  #:use-module (srfi srfi-1)  ; for last
+  #:use-module (srfi srfi-13)
+  #:use-module (srfi srfi-64) ; for tests
+  #:use-module (ice-9 rdelim)
+  )
+
+(test-begin "uvlmm-kinship-run")
+
+(let [(err (system "./build/bin/Debug/gemma -g ./example/mouse_hs1940.geno.txt.gz -p ./example/mouse_hs1940.pheno.txt -gk -o mouse_hs1940 -debug"))]
+  (test-eqv 0 err))
+
+(test-end "uvlmm-kinship-run")
+
+(test-begin "uvlmm-gwa-run")
+
+(let [(err (system "./build/bin/Debug/gemma -g ./example/mouse_hs1940.geno.txt.gz -p ./example/mouse_hs1940.pheno.txt -n 1 -a ./example/mouse_hs1940.anno.txt -k ./output/mouse_hs1940.cXX.txt -o mouse_hs1940 -lmm 9 -debug"))]
+  (test-eqv 0 err))
+(call-with-input-file "output/mouse_hs1940.assoc.txt"
+  (lambda (port)
+    (read-line port)  ; skip first line
+    (let* ((fields (string-split (read-line port) #\tab))
+           (last-field (last fields)))
+      (test-eqv 208.0 (truncate (* 1000 (string->number last-field)))))
+    (test-eqv 5720672.0
+      (let loop ((line (read-line port))
+                 (sum 208.0))
+        (if (eof-object? line)
+            sum
+            (let* ((fields (string-split line #\tab))
+                   (last-field (last fields))
+                   (value (string->number last-field)))
+              (loop (read-line port)
+                    (+ sum (truncate (* 1000 value))))))))))
+
+(test-end "uvlmm-gwa-run")