From 02e5f5ec552edeb6447297a88956bab473d63297 Mon Sep 17 00:00:00 2001
From: Sander Bollen <a.h.b.bollen@lumc.nl>
Date: Wed, 12 Aug 2015 18:17:40 +0200
Subject: [PATCH] Partial VcfFilter tests. See #180

---
 .../nl/lumc/sasc/biopet/tools/VcfFilter.scala |  2 +-
 .../sasc/biopet/tools/VcfFilterTest.scala     | 66 +++++++++++++++++++
 2 files changed, 67 insertions(+), 1 deletion(-)

diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
index 981203de4..f5fb9f3a6 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala
@@ -278,7 +278,7 @@ object VcfFilter extends ToolCommand {
   }
 
   /**
-   * Checks if AD genotype field have a minimal value
+   * Checks if non-ref AD genotype field have a minimal value
    * @param record VCF record
    * @param minAlternateDepth minimal depth
    * @param minSamplesPass Minimal number of samples to pass filter
diff --git a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/VcfFilterTest.scala b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/VcfFilterTest.scala
index 2b47405a4..840abf904 100644
--- a/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/VcfFilterTest.scala
+++ b/public/biopet-framework/src/test/scala/nl/lumc/sasc/biopet/tools/VcfFilterTest.scala
@@ -81,4 +81,70 @@ class VcfFilterTest extends TestNGSuite with MockitoSugar with Matchers {
     hasGenotype(record, List(("Mother_7006508", GenotypeType.HET), ("Child_7006504", GenotypeType.HOM_REF))) shouldBe false
   }
 
+  @Test def testMinQualScore() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    minQualscore(record, 2000) shouldBe false
+    minQualscore(record, 1000) shouldBe true
+
+  }
+
+  @Test def testHasNonRefCalls() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    hasNonRefCalls(record) shouldBe true
+  }
+
+  @Test def testHasCalls() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    hasCalls(record) shouldBe true
+  }
+
+  @Test def testHasMinDP() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    hasMinTotalDepth(record, 100) shouldBe true
+    hasMinTotalDepth(record, 200) shouldBe false
+  }
+
+  @Test def testHasMinSampleDP() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    hasMinSampleDepth(record, 30, 1) shouldBe true
+    hasMinSampleDepth(record, 30, 2) shouldBe true
+    hasMinSampleDepth(record, 30, 3) shouldBe true
+    hasMinSampleDepth(record, 40, 1) shouldBe true
+    hasMinSampleDepth(record, 40, 2) shouldBe true
+    hasMinSampleDepth(record, 40, 3) shouldBe false
+    hasMinSampleDepth(record, 50, 1) shouldBe false
+    hasMinSampleDepth(record, 50, 2) shouldBe false
+    hasMinSampleDepth(record, 50, 3) shouldBe false
+  }
+
+  @Test def testHasMinSampleAD() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    minAlternateDepth(record, 0, 3) shouldBe true
+    minAlternateDepth(record, 10, 2) shouldBe true
+    minAlternateDepth(record, 10, 3) shouldBe false
+    minAlternateDepth(record, 20, 1) shouldBe true
+    minAlternateDepth(record, 20, 2) shouldBe false
+  }
+
+  @Test def testMustHaveVariant() = {
+    val reader = new VCFFileReader(vepped, false)
+    val record = reader.iterator().next()
+
+    mustHaveVariant(record, List("Child_7006504")) shouldBe true
+    mustHaveVariant(record, List("Child_7006504", "Father_7006506")) shouldBe true
+    mustHaveVariant(record, List("Child_7006504", "Father_7006506", "Mother_7006508")) shouldBe false
+  }
+
 }
-- 
GitLab