package jalview.io.gff; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class SequenceOntologyTest { private SequenceOntology so; @BeforeMethod public void setUp() { so = SequenceOntology.getInstance(); } @Test(groups = "Functional") public void testIsA() { assertFalse(so.isA(null, null)); assertFalse(so.isA(null, "SO:0000087")); assertFalse(so.isA("SO:0000087", null)); assertFalse(so.isA("complete", "garbage")); assertTrue(so.isA("SO:0000087", "SO:0000704")); assertFalse(so.isA("SO:0000704", "SO:0000087")); assertTrue(so.isA("SO:0000736", "SO:0000735")); // same thing: assertTrue(so.isA("micronuclear_sequence", "micronuclear_sequence")); // direct parent: assertTrue(so.isA("micronuclear_sequence", "organelle_sequence")); // grandparent: assertTrue(so.isA("micronuclear_sequence", "sequence_location")); // great-grandparent: assertTrue(so.isA("micronuclear_sequence", "sequence_attribute")); // same thing by name / description: assertTrue(so.isA("micronuclear_sequence", "SO:0000084")); assertTrue(so.isA("SO:0000084", "micronuclear_sequence")); assertTrue(so.isA("SO:0000084", "SO:0000084")); // SO name to description: assertTrue(so.isA("SO:0000084", "organelle_sequence")); assertTrue(so.isA("SO:0000084", "sequence_location")); assertTrue(so.isA("SO:0000084", "sequence_attribute")); // description to SO name: assertTrue(so.isA("micronuclear_sequence", "SO:0000736")); assertTrue(so.isA("micronuclear_sequence", "SO:0000735")); assertTrue(so.isA("micronuclear_sequence", "SO:0000400")); } @Test(groups = "Functional") public void testIsProteinMatch() { assertTrue(so.isProteinMatch("protein_match")); assertTrue(so.isProteinMatch("protein_hmm_match")); assertFalse(so.isProteinMatch("Protein_match")); // case-sensitive } @Test(groups = "Functional") public void testIsNucleotideMatch() { assertTrue(so.isNucleotideMatch("nucleotide_match")); assertTrue(so.isNucleotideMatch("primer_match")); assertTrue(so.isNucleotideMatch("cross_genome_match")); assertTrue(so.isNucleotideMatch("expressed_sequence_match")); assertTrue(so.isNucleotideMatch("translated_nucleotide_match")); assertTrue(so.isNucleotideMatch("UST_match")); assertTrue(so.isNucleotideMatch("RST_match")); assertTrue(so.isNucleotideMatch("cDNA_match")); assertTrue(so.isNucleotideMatch("EST_match")); assertFalse(so.isNucleotideMatch("match")); // parent } @Test(groups = "Functional") public void testIsCDS() { assertTrue(so.isA("CDS", "CDS")); assertTrue(so.isA("CDS_predicted", "CDS")); assertTrue(so.isA("transposable_element_CDS", "CDS")); assertTrue(so.isA("edited_CDS", "CDS")); assertTrue(so.isA("CDS_independently_known", "CDS")); assertTrue(so.isA("CDS_fragment", "CDS")); assertFalse(so.isA("CDS_region", "CDS"));// part_of assertFalse(so.isA("polypeptide", "CDS")); // derives_from } }