about summary refs log tree commit diff
path: root/test
diff options
context:
space:
mode:
authorPjotr Prins2021-08-25 09:54:44 +0200
committerPjotr Prins2021-08-25 09:54:44 +0200
commitbda453acb2aa202a0703e8863fead0f2289c0192 (patch)
treecc69771dce2ce8d1e3ec19440fe9548fa2a33d3a /test
parentc2681ce7969f24083243a3cb6cd2cb63a774a025 (diff)
downloadpangemma-bda453acb2aa202a0703e8863fead0f2289c0192.tar.gz
More tests and some flexibility with testing floats
Diffstat (limited to 'test')
-rw-r--r--test/dev_tests.rb25
-rw-r--r--test/lib/test-helpers.rb12
2 files changed, 33 insertions, 4 deletions
diff --git a/test/dev_tests.rb b/test/dev_tests.rb
index d63b8fe..fb3fecf 100644
--- a/test/dev_tests.rb
+++ b/test/dev_tests.rb
@@ -38,6 +38,29 @@ class TestQuick < MiniTest::Test
            -lmm 2 -no-check -maf 0.1 \
            -o BXDLMM")
 
-    expect("output/BXDLMM.assoc.txt",[[2,9,"1.234747e-01"]])
+    expect("output/BXDLMM.assoc.txt",[[2,9,"1.234747e-01"],
+                                      [:max,9,"9.997119e-01"]])
+  end
+
+  def test_mouse_hs1940_loco
+    assert gemma("-g ./example/mouse_hs1940.geno.txt.gz \
+           -p ./example/mouse_hs1940.pheno.txt \
+           -a ./example/mouse_hs1940.anno.txt \
+           -snps ./example/mouse_hs1940_snps.txt \
+           -nind 400 -loco 1 -gk \
+           -o mouse_hs1940_loco")
+
+    assert gemma("-g ./example/mouse_hs1940.geno.txt.gz \
+           -p ./example/mouse_hs1940.pheno.txt \
+	   -n 1 \
+	   -loco 1 \
+           -a ./example/mouse_hs1940.anno.txt \
+           -k ./output/mouse_hs1940_loco.cXX.txt \
+	   -snps ./example/mouse_hs1940_snps.txt \
+           -lmm \
+	   -nind 400 -no-check \
+           -o mouse_hs1940_loco")
+    expect("output/mouse_hs1940_loco.assoc.txt",[[2,9,"-3.073643e+02"],
+                                                 [:max,11,"9.716047e-01"]])
   end
 end
diff --git a/test/lib/test-helpers.rb b/test/lib/test-helpers.rb
index 72b9cd9..d2989e0 100644
--- a/test/lib/test-helpers.rb
+++ b/test/lib/test-helpers.rb
@@ -14,11 +14,17 @@ module TestHelpers
   end
 
   def expect(fn, list)
-    lines = File.read(fn).split("\n") # avoid this for large files
+    lines = File.read(fn).split("\n")
+    lines = lines.map { |l| l.split("\t") } # avoid this for large files
     list.each do | l |
       line,colnum,value = l
-      cols = lines[line].chomp.split("\t")
-      assert_equal value,cols[colnum]
+      if line == :max
+        cols = lines.max_by {|a| a[colnum].to_f}
+      else
+        cols = lines[line]
+      end
+      # assert_equal value,cols[colnum]
+      assert_in_delta value.to_f,cols[colnum].to_f, 0.001
     end
   end
 end