X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FFormatAdapterTest.java;fp=test%2Fjalview%2Fio%2FFormatAdapterTest.java;h=0000000000000000000000000000000000000000;hb=4f77328104498504339216829abf5ea87e2791ec;hp=b500266ae1b7da55936db89bf54cb995da822d83;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/test/jalview/io/FormatAdapterTest.java b/test/jalview/io/FormatAdapterTest.java deleted file mode 100644 index b500266..0000000 --- a/test/jalview/io/FormatAdapterTest.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors - * - * This file is part of Jalview. - * - * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation, either version 3 - * of the License, or (at your option) any later version. - * - * Jalview is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Jalview. If not, see . - * The Jalview Authors are detailed in the 'AUTHORS' file. - */ -package jalview.io; - -import static org.testng.AssertJUnit.assertEquals; -import static org.testng.AssertJUnit.assertNotNull; -import static org.testng.AssertJUnit.fail; - -import jalview.datamodel.AlignmentI; -import jalview.datamodel.SequenceI; -import jalview.gui.JvOptionPane; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Test; - -public class FormatAdapterTest -{ - - @BeforeClass(alwaysRun = true) - public void setUpJvOptionPane() - { - JvOptionPane.setInteractiveMode(false); - JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); - } - - /** - * Test saving and re-reading in a specified format - * - * @throws IOException - */ - @Test(groups = { "Functional" }, dataProvider = "formats") - public void testRoundTrip(FileFormatI format) throws IOException - { - try - { - AlignmentI al = new FormatAdapter().readFile("examples/uniref50.fa", - DataSourceType.FILE, FileFormat.Fasta); - - /* - * 'gap' is the gap character used in the alignment data file here, - * not the user preferred gap character - */ - char gap = al.getGapCharacter(); - assertNotNull(al); - - SequenceI[] seqs = al.getSequencesArray(); - String formatted = new FormatAdapter().formatSequences(format, al, - false); - - AlignmentI reloaded = new FormatAdapter().readFile(formatted, - DataSourceType.PASTE, format); - List reread = reloaded.getSequences(); - assertEquals("Wrong number of reloaded sequences", seqs.length, - reread.size()); - - int i = 0; - for (SequenceI seq : reread) - { - String sequenceString = seq.getSequenceAsString(); - - /* - * special case: MSF always uses '.' as gap character - */ - sequenceString = adjustForGapTreatment(sequenceString, gap, format); - assertEquals( - String.format("Sequence %d: %s", i, seqs[i].getName()), - seqs[i].getSequenceAsString(), sequenceString); - i++; - } - } catch (IOException e) - { - fail(String - .format("Format %s failed with %s", format, e.getMessage())); - } - } - - /** - * Optionally change the gap character in the string to the given character, - * depending on the sequence file format - * - * @param sequenceString - * a sequence (as written in 'format' format) - * @param gap - * the sequence's original gap character - * @param format - * @return - */ - String adjustForGapTreatment(String sequenceString, char gap, - FileFormatI format) - { - if (FileFormat.MSF.equals(format)) - { - /* - * MSF forces gap character to '.', so change it back - * for comparison purposes - */ - sequenceString = sequenceString.replace('.', gap); - } - return sequenceString; - } - - /** - * Data provider that serves alignment formats that are both readable and - * (text) writable - * - * @return - */ - @DataProvider(name = "formats") - static Object[][] getFormats() - { - List both = new ArrayList(); - for (FileFormatI format : FileFormats.getInstance().getFormats()) - { - if (format.isReadable() && format.isWritable() - && format.isTextFormat()) - { - both.add(format); - } - } - - Object[][] formats = new Object[both.size()][]; - int i = 0; - for (FileFormatI format : both) - { - formats[i] = new Object[] { format }; - i++; - } - return formats; - } - - /** - * Enable this to isolate testing to a single file format - * - * @throws IOException - */ - @Test(groups = { "Functional" }, enabled = false) - public void testOneFormatRoundTrip() throws IOException - { - testRoundTrip(FileFormat.Json); - } -}