*/
package jalview.datamodel;
+import jalview.analysis.Rna;
+import jalview.analysis.SecStrConsensus.SimpleBP;
+import jalview.analysis.WUSSParseException;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Map.Entry;
-import jalview.analysis.Rna;
-import jalview.analysis.SecStrConsensus.SimpleBP;
-import jalview.analysis.WUSSParseException;
-
/**
* DOCUMENT ME!
*
public char charAt(int index)
{
return ((index + offset < 0) || (index + offset) >= max
- || annotations[index + offset] == null || (annotations[index
- + offset].secondaryStructure < ' ') ? ' '
- : annotations[index + offset].secondaryStructure);
+ || annotations[index + offset] == null
+ || (annotations[index + offset].secondaryStructure <= ' ') ? ' '
+ : annotations[index + offset].displayCharacter == null
+ || annotations[index + offset].displayCharacter
+ .length() == 0 ? annotations[index + offset].secondaryStructure
+ : annotations[index + offset].displayCharacter
+ .charAt(0));
}
@Override
for (int i = offset; i < mx; i++)
{
- string[i] = (annotations[i] == null || (annotations[i].secondaryStructure < 32)) ? ' '
- : annotations[i].secondaryStructure;
+ string[i] = (annotations[i] == null || (annotations[i].secondaryStructure <= 32)) ? ' '
+ : (annotations[i].displayCharacter == null
+ || annotations[i].displayCharacter.length() == 0 ? annotations[i].secondaryStructure
+ : annotations[i].displayCharacter.charAt(0));
}
return new String(string);
}
{
if (annotations[i] != null)
{
- annotations[i].displayCharacter = "X";
+ annotations[i].displayCharacter = "";
}
}
}
FormatAdapter.PASTE));
// test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
return;
} catch (Exception e)
{
AppletFormatAdapter.PASTE, PhylipFile.FILE_DESC);
assertNotNull("Couldn't parse reimported alignment data.", al_input);
- StockholmFileTest.testAlignmentEquivalence(al, al_input);
+ StockholmFileTest.testAlignmentEquivalence(al, al_input, false);
}
}
\ No newline at end of file
"Identify routine could not recognise output generated by '"
+ ioformat + "' writer",
ioformat.equals(identifyoutput));
- testAlignmentEquivalence(al, al_input);
+ testAlignmentEquivalence(al, al_input, false);
int numaliannot = 0, numsqswithali = 0;
for (AlignmentAnnotation ala : al_input.getAlignmentAnnotation())
{
* @param al_input
* 'secondary' or generated alignment from some datapreserving
* transformation
+ * @param ignoreFeatures
+ * when true, differences in seuqence feature annotation are ignored.
*/
public static void testAlignmentEquivalence(AlignmentI al,
- AlignmentI al_input)
+ AlignmentI al_input, boolean ignoreFeatures)
{
assertNotNull("Original alignment was null", al);
assertNotNull("Generated alignment was null", al_input);
+ " are not equal", ss_original.equals(ss_new));
assertTrue(
- "Sequence Features were not equivalent",
- (seq_original[i].getSequenceFeatures() == null && seq_new[in]
+ "Sequence Features were not equivalent"
+ + (ignoreFeatures ? " ignoring." : ""),
+ ignoreFeatures
+ || (seq_original[i].getSequenceFeatures() == null && seq_new[in]
.getSequenceFeatures() == null)
|| (seq_original[i].getSequenceFeatures() != null && seq_new[in]
.getSequenceFeatures() != null));
FormatAdapter.PASTE));
// test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ StockholmFileTest.testAlignmentEquivalence(al, al_new, true);
return;
} catch (Exception e)
{
FormatAdapter.PASTE));
// test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
return;
} catch (Exception e)
{
FormatAdapter.PASTE));
// test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new);
+ StockholmFileTest.testAlignmentEquivalence(al, al_new, false);
return;
} catch (Exception e)
{