X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FIdentifyFileTest.java;h=c00cf069e9e1015d29ba7b556d2a6e12128ceacc;hb=37de9310bec3501cbc6381e0c3dcb282fcaad812;hp=fbecc0001093625d49f68b3ebf04caa4777e2c7d;hpb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;p=jalview.git diff --git a/test/jalview/io/IdentifyFileTest.java b/test/jalview/io/IdentifyFileTest.java index fbecc00..c00cf06 100644 --- a/test/jalview/io/IdentifyFileTest.java +++ b/test/jalview/io/IdentifyFileTest.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,6 +20,10 @@ */ package jalview.io; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertFalse; +import static org.testng.AssertJUnit.assertTrue; + import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -28,15 +32,47 @@ public class IdentifyFileTest { @Test(groups = { "Functional" }, dataProvider = "identifyFiles") - public void Identify(String data, String expectedFileType) + public void testIdentify(String data, String expectedFileType) { String protocol = AppletFormatAdapter.FILE; IdentifyFile ider = new IdentifyFile(); - String actualFiletype = ider.Identify(data, protocol); + String actualFiletype = ider.identify(data, protocol); Assert.assertEquals(actualFiletype, expectedFileType, "File identification Failed!"); } + /** + * Additional tests for Jalview features file + */ + @Test(groups = "Functional") + public void testIdentify_featureFile() + { + IdentifyFile ider = new IdentifyFile(); + + /* + * Jalview format with features only, no feature colours + */ + String data = "Iron-sulfur (2Fe-2S)\tFER_CAPAA\t-1\t39\t39\tMETAL\n" + + "Iron-phosphorus (2Fe-P)\tID_NOT_SPECIFIED\t2\t86\t87\tMETALLIC\n"; + assertEquals(IdentifyFile.FeaturesFile, + ider.identify(data, AppletFormatAdapter.PASTE)); + + /* + * Jalview feature colour followed by GFF format feature data + */ + data = "METAL\tcc9900\n" + "GFF\n" + + "FER_CAPAA\tuniprot\tMETAL\t44\t45\t4.0\t.\t.\n"; + assertEquals(IdentifyFile.FeaturesFile, + ider.identify(data, AppletFormatAdapter.PASTE)); + + /* + * Feature with '<' in the name (JAL-2098) + */ + data = "kD < 3\tred\n" + "Low kD\tFER_CAPAA\t-1\t39\t39\tkD < 3\n"; + assertEquals(IdentifyFile.FeaturesFile, + ider.identify(data, AppletFormatAdapter.PASTE)); + } + @DataProvider(name = "identifyFiles") public Object[][] IdentifyFileDP() { @@ -54,8 +90,10 @@ public class IdentifyFileTest { "examples/testdata/test.html", "HTML" }, { "examples/testdata/test.pileup", "PileUp" }, { "examples/testdata/test.blc", "BLC" }, - { "examples/testdata/simplegff3.gff", "GFF v2 or v3" }, + { "examples/exampleFeatures.txt", IdentifyFile.FeaturesFile }, + { "examples/testdata/simpleGff3.gff", IdentifyFile.FeaturesFile }, { "examples/testdata/test.jvp", "Jalview" }, + { "examples/testdata/test.cif", "mmCIF" }, { "examples/testdata/cullpdb_pc25_res3.0_R0.3_d150729_chains9361.fasta.15316", "FASTA" }, @@ -65,4 +103,22 @@ public class IdentifyFileTest }; } + @Test(groups = "Functional") + public void testLooksLikeFeatureData() + { + IdentifyFile id = new IdentifyFile(); + assertFalse(id.looksLikeFeatureData(null)); + assertFalse(id.looksLikeFeatureData("")); + // too few columns: + assertFalse(id.looksLikeFeatureData("1 \t 2 \t 3 \t 4 \t 5")); + // GFF format: + assertTrue(id + .looksLikeFeatureData("Seq1\tlocal\tHelix\t2456\t2462\tss")); + // Jalview format: + assertTrue(id.looksLikeFeatureData("Helix\tSeq1\t-1\t2456\t2462\tss")); + // non-numeric start column: + assertFalse(id.looksLikeFeatureData("Helix\tSeq1\t-1\t.\t2462\tss")); + // non-numeric start column: + assertFalse(id.looksLikeFeatureData("Helix\tSeq1\t-1\t2456\t.\tss")); + } }