From 3e24e422280ee0a231739034319afd0818f5625e Mon Sep 17 00:00:00 2001
From: tcarver <tjc>
Date: Fri, 20 Sep 2013 13:31:43 +0100
Subject: [PATCH] indexed user plot

---
 .../ac/sanger/artemis/plot/UserPlotTest.java  | 35 +++++++++++++++++--
 1 file changed, 33 insertions(+), 2 deletions(-)

diff --git a/test/uk/ac/sanger/artemis/plot/UserPlotTest.java b/test/uk/ac/sanger/artemis/plot/UserPlotTest.java
index 6b02c985c..461b4817b 100644
--- a/test/uk/ac/sanger/artemis/plot/UserPlotTest.java
+++ b/test/uk/ac/sanger/artemis/plot/UserPlotTest.java
@@ -57,7 +57,7 @@ public class UserPlotTest
       int start = 278;
       alg.getValues(start, start+10, values);
       assertEquals("Number of plots",values.length,6);
-      assertTrue("Value of plot 1 at base position 278",values[0]==804.99f);
+      assertTrue("Value of plot 1 at base position "+start,values[0]==804.99f);
     }
     catch(IOException e)
     {
@@ -87,7 +87,38 @@ public class UserPlotTest
       int start = 278;
       alg.getValues(start, start+10, values);
       assertEquals("Number of plots",values.length,6);
-      assertTrue("Value of plot 1 at base position 278",values[0]==804.99f);
+      assertTrue("Value of plot 1 at base position "+start,values[0]==804.99f);
+    }
+    catch(IOException e)
+    {
+      Assert.fail(e.getMessage());
+    }
+  }
+  
+  @Test
+  /**
+   * Indexed (tabix) user plot.
+   */
+  public void indexed()
+  {
+    URL gffURL = UserPlotTest.class.getResource("/data/plot/index_tab_sorted.plot.gz");
+    EntryGroup entryGrp = Utils.getEntryGroup("/data/MAL1.embl.gz");
+    final Strand fwdStrand = entryGrp.getBases ().getForwardStrand ();
+    final FileDocument doc = new FileDocument (new File(gffURL.getFile()));
+    try
+    {
+      final UserDataAlgorithm alg = new UserDataAlgorithm (fwdStrand, doc, false);
+
+      alg.readIndexValues(true, entryGrp.getSequenceEntry(), 1, 120);
+      float [] values = new float [alg.getValueCount()];
+
+      int start = 20;
+      alg.getValues(start, start+1, values);
+      assertEquals("Number of plots",values.length,6);
+      assertTrue("Value of plot 5 at base position "+start+"="+values[5],values[5]==(234.f/2.f));
+      
+      alg.getValues(start, start+4, values);
+      assertTrue("Value of plot 5 at base position "+start+"="+values[5],values[5]==(234.f/5.f));
     }
     catch(IOException e)
     {
-- 
GitLab