Merge branch 'JAL-1447' into develop
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Thu, 20 Feb 2014 15:27:53 +0000 (15:27 +0000)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Thu, 20 Feb 2014 15:27:53 +0000 (15:27 +0000)
src/jalview/io/IdentifyFile.java
test/jalview/io/FileIOTester.java
test/jalview/io/test_fasta_stars.fa [new file with mode: 0644]
test/jalview/io/test_fasta_stars2.fa [new file with mode: 0644]

index 5307e95..9685b4e 100755 (executable)
@@ -191,16 +191,19 @@ public class IdentifyFile
             // Is this a single line BLC file?
             String data1 = source.nextLine();
             String data2 = source.nextLine();
+            int c1;
             if (checkPIR)
             {
               starterm = (data1 != null && data1.indexOf("*") > -1)
                       || (data2 != null && data2.indexOf("*") > -1);
             }
-            if (data2 != null && data.indexOf("*") > -1)
+            if (data2 != null && (c1=data.indexOf("*")) > -1)
             {
-              if (data.indexOf("*") == data2.indexOf("*"))
+              if (c1==0 && c1 == data2.indexOf("*"))
               {
                 reply = "BLC";
+              } else {
+                reply = "FASTA"; // possibly a bad choice - may be recognised as PIR 
               }
               // otherwise can still possibly be a PIR file
             }
index 2b975a2..5d10c35 100644 (file)
@@ -49,21 +49,39 @@ public class FileIOTester
   public static void tearDownAfterClass() throws Exception
   {
   }
+  // TODO: make a better/more comprehensive test harness for identify/io
+  
   final static File ALIGN_FILE = new File("test/jalview/io/test_gz_fasta.gz");
   final static File NOTGZALIGN_FILE = new File("test/jalview/io/test_gz_fasta_notgz.gz");
+  final static File STARS_FA_FILE1 = new File("test/jalview/io/test_fasta_stars.fa");
+  final static File STARS_FA_FILE2 = new File("test/jalview/io/test_fasta_stars2.fa");
 
-  private void assertValidFasta(String src, FileParse fp)
+  private void assertValidFormat(String fmt, String src, FileParse fp)
   {
     assertTrue("Couldn't resolve "+src+" as a valid file",fp.isValid());
     String type = new IdentifyFile().Identify(fp);
-    assertTrue("Gzipped data from '"+src+"' identified as '"+type+"'",type.equalsIgnoreCase("FASTA"));
+    assertTrue("Data from '"+src+"' Expected to be '"+fmt+"' identified as '"+type+"'",type.equalsIgnoreCase(fmt));
+  }
+  @Test
+  public void testStarsInFasta1() throws IOException
+  {
+    String uri;
+    FileParse fp = new FileParse(uri=STARS_FA_FILE1.getAbsoluteFile().toString(),AppletFormatAdapter.FILE);
+    assertValidFormat("FASTA", uri, fp);
+  }
+  @Test
+  public void testStarsInFasta2() throws IOException
+  {
+    String uri;
+    FileParse fp = new FileParse(uri=STARS_FA_FILE2.getAbsoluteFile().toString(),AppletFormatAdapter.FILE);
+    assertValidFormat("FASTA", uri, fp);
   }
   @Test
   public void testGzipIo() throws IOException
   {     
     String uri;
     FileParse fp = new FileParse(uri=ALIGN_FILE.getAbsoluteFile().toURI().toString(),AppletFormatAdapter.URL);
-    assertValidFasta(uri, fp);
+    assertValidFormat("FASTA", uri, fp);
   }
 
   @Test
@@ -71,20 +89,20 @@ public class FileIOTester
   {
     String filepath;
     FileParse fp = new FileParse(filepath=ALIGN_FILE.getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
-    assertValidFasta(filepath, fp);
+    assertValidFormat("FASTA",filepath, fp);
   }
   @Test
   public void testNonGzipURLIO() throws IOException
   {
     String uri;
     FileParse fp = new FileParse(uri=NOTGZALIGN_FILE.getAbsoluteFile().toURI().toString(),AppletFormatAdapter.URL);
-    assertValidFasta(uri, fp);
+    assertValidFormat("FASTA",uri, fp);
   }
   @Test
   public void testNonGziplocalFileIO() throws IOException
   {
     String filepath;
     FileParse fp = new FileParse(filepath=NOTGZALIGN_FILE.getAbsoluteFile().toString(), AppletFormatAdapter.FILE);
-    assertValidFasta(filepath, fp);
+    assertValidFormat("FASTA",filepath, fp);
   }
 }
diff --git a/test/jalview/io/test_fasta_stars.fa b/test/jalview/io/test_fasta_stars.fa
new file mode 100644 (file)
index 0000000..4595283
--- /dev/null
@@ -0,0 +1,8 @@
+>a 
+asdafoobar 
+asdafoobar 
+asdafoobar*
+>a 
+asdafoobar 
+asdafoobar 
+asdafoobar*
\ No newline at end of file
diff --git a/test/jalview/io/test_fasta_stars2.fa b/test/jalview/io/test_fasta_stars2.fa
new file mode 100644 (file)
index 0000000..946b9d4
--- /dev/null
@@ -0,0 +1,4 @@
+>a 
+asda*foobar* 
+asda*foobar* 
+asda*foobar*