about summary refs log tree commit diff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/dev_tests.rb25
-rw-r--r--test/lib/test-helpers.rb24
2 files changed, 49 insertions, 0 deletions
diff --git a/test/dev_tests.rb b/test/dev_tests.rb
new file mode 100644
index 0000000..8ce8dbc
--- /dev/null
+++ b/test/dev_tests.rb
@@ -0,0 +1,25 @@
+
+require 'minitest/autorun'
+require 'lib/test-helpers'
+
+class TestQuick < MiniTest::Test
+
+  include TestHelpers
+
+  def setup
+  end
+
+  def test_linear_model
+    assert gemma("-g ./example/mouse_hs1940.geno.txt.gz \
+           -p ./example/mouse_hs1940.pheno.txt \
+           -n 1 \
+           -a ./example/mouse_hs1940.anno.txt \
+           -lm \
+           -o mouse_hs1940_CD8_lm")
+
+    expect('output/mouse_hs1940_CD8_lm.assoc.txt',[[2,1,"rs3707673"],
+                                                   [2,10,"5.252187e-05"],
+                                                   [3,9,"3.909916e-02"]])
+  end
+
+end
diff --git a/test/lib/test-helpers.rb b/test/lib/test-helpers.rb
new file mode 100644
index 0000000..72b9cd9
--- /dev/null
+++ b/test/lib/test-helpers.rb
@@ -0,0 +1,24 @@
+module TestHelpers
+
+  # Runs gemma and returns true if successful
+  def gemma(opts)
+    system("./bin/gemma #{opts}")
+  end
+
+  def read(fn, line=0)
+    count = 0
+    File.open(fn, "r:utf-8").each_line { |ln|
+      return ln.chomp.split("\t") if count == line
+      count += 1
+    }
+  end
+
+  def expect(fn, list)
+    lines = File.read(fn).split("\n") # avoid this for large files
+    list.each do | l |
+      line,colnum,value = l
+      cols = lines[line].chomp.split("\t")
+      assert_equal value,cols[colnum]
+    end
+  end
+end