package jalview.io.gff; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; import jalview.datamodel.ontology.OntologyI; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class SequenceOntologyLiteTest { private OntologyI so; @BeforeClass(alwaysRun = true) public void setUp() { so = new SequenceOntologyLite(); } @Test(groups = "Functional") public void testIsA_sequenceVariant() { assertFalse(so.isA("CDS", "sequence_variant")); assertTrue(so.isA("sequence_variant", "sequence_variant")); /* * these should all be sub-types of sequence_variant */ assertTrue(so.isA("structural_variant", "sequence_variant")); assertTrue(so.isA("feature_variant", "sequence_variant")); assertTrue(so.isA("gene_variant", "sequence_variant")); assertTrue(so.isA("transcript_variant", "sequence_variant")); assertTrue(so.isA("NMD_transcript_variant", "sequence_variant")); assertTrue(so.isA("missense_variant", "sequence_variant")); assertTrue(so.isA("synonymous_variant", "sequence_variant")); assertTrue(so.isA("frameshift_variant", "sequence_variant")); assertTrue(so.isA("5_prime_UTR_variant", "sequence_variant")); assertTrue(so.isA("3_prime_UTR_variant", "sequence_variant")); assertTrue(so.isA("stop_gained", "sequence_variant")); assertTrue(so.isA("stop_lost", "sequence_variant")); assertTrue(so.isA("inframe_deletion", "sequence_variant")); assertTrue(so.isA("inframe_insertion", "sequence_variant")); assertTrue(so.isA("splice_region_variant", "sequence_variant")); } @Test(groups = "Functional") public void testGetParentTerms() { Set terms = new HashSet<>(); terms.add("sequence_variant"); terms.add("NMD_transcript_variant"); terms.add("stop_lost"); terms.add("chain"); // not an SO term Set parents = so.getParentTerms(terms); assertEquals(parents.size(), 2); assertTrue(parents.contains("sequence_variant")); assertTrue(parents.contains("chain")); } @Test(groups = "Functional") public void testGetChildTerms() { List terms = Collections. emptyList(); List children = so.getChildTerms("exon", terms); assertTrue(children.isEmpty()); terms = Arrays.asList("gene", "transcript", "snRNA", "junk", "mRNA"); children = so.getChildTerms("exon", terms); assertTrue(children.isEmpty()); children = so.getChildTerms("transcript", terms); assertEquals(children.size(), 2); assertTrue(children.contains("snRNA")); assertTrue(children.contains("mRNA")); terms = Arrays.asList("gene", "transcript", "synonymous_variant", "stop_lost", "chain"); children = so.getChildTerms("sequence_variant", terms); assertEquals(children.size(), 2); assertTrue(children.contains("synonymous_variant")); assertTrue(children.contains("stop_lost")); } }