Skip to content

Commit 9ca7435

Browse files
committed
unit tests for chromosome sequence
1 parent ebb6eb0 commit 9ca7435

1 file changed

Lines changed: 163 additions & 0 deletions

File tree

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
package org.biojava.nbio.core.sequence;
2+
3+
import org.biojava.nbio.core.exceptions.CompoundNotFoundException;
4+
import org.junit.jupiter.api.BeforeEach;
5+
import org.junit.jupiter.api.Nested;
6+
import org.junit.jupiter.api.Test;
7+
import org.junit.jupiter.params.ParameterizedTest;
8+
import org.junit.jupiter.params.provider.EnumSource;
9+
import org.junit.jupiter.params.provider.ValueSource;
10+
11+
import static org.junit.jupiter.api.Assertions.*;
12+
13+
class ChromosomeSequenceTest {
14+
15+
private final String chromosome_seq = "ATATATATATATATATATATATATATATATATACGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCATATATATATATATATATATATACGCGCGCGCGCGCGCGCATATATATATATATATATATATATATATATATACGCGCGCGCGCGCGCGCGCGCGCGCGCGCGCATATATATATATATATATATATACGCGCGCGCGCGCGCGC";
16+
17+
@Nested
18+
class AfterValidConstruction {
19+
ChromosomeSequence seq = null;
20+
21+
@BeforeEach
22+
void before() throws CompoundNotFoundException {
23+
seq = new ChromosomeSequence(chromosome_seq);
24+
}
25+
26+
@Test
27+
void beginAndEndAreLengthOfSequence() {
28+
assertEquals(1, seq.getBioBegin());
29+
assertEquals(208, seq.getBioEnd());
30+
assertEquals(208, seq.getLength());
31+
}
32+
33+
@Test
34+
void noGenesAreDefined() {
35+
assertEquals(0, seq.getGeneSequences().size());
36+
}
37+
38+
@Test
39+
void chromosomeNumberIsZero() {
40+
assertEquals(0, seq.getChromosomeNumber());
41+
}
42+
43+
@Test
44+
void sequenceTypeIsUnknown() {
45+
assertEquals(DNASequence.DNAType.UNKNOWN, seq.getDNAType());
46+
}
47+
}
48+
49+
@Nested
50+
class AfterConstructionWithEmptyString {
51+
ChromosomeSequence seq = null;
52+
53+
@BeforeEach
54+
void before() throws CompoundNotFoundException {
55+
seq = new ChromosomeSequence("");
56+
}
57+
58+
@Test
59+
void lengthIsZero() {
60+
assertEquals(0, seq.getLength());
61+
}
62+
63+
@Test
64+
void endIsBeforeBeginning() {
65+
assertEquals(0, seq.getBioEnd());
66+
assertEquals(1, seq.getBioBegin());
67+
}
68+
69+
}
70+
71+
@Test
72+
void nullSequenceNotAllowed() throws CompoundNotFoundException {
73+
assertThrows(NullPointerException.class, () -> new ChromosomeSequence((String) null));
74+
}
75+
76+
@ParameterizedTest
77+
@ValueSource(ints = {Integer.MAX_VALUE, Integer.MIN_VALUE, 100, 0, -1, -100})
78+
void anyIntegerIsValidChromosomeNumber(int value) throws CompoundNotFoundException {
79+
ChromosomeSequence seq = new ChromosomeSequence(chromosome_seq);
80+
seq.setChromosomeNumber(value);
81+
assertEquals(value, seq.getChromosomeNumber());
82+
}
83+
84+
@ParameterizedTest
85+
@EnumSource(DNASequence.DNAType.class)
86+
void anyDNATypeIsValid(DNASequence.DNAType dnaType) throws CompoundNotFoundException {
87+
ChromosomeSequence seq = new ChromosomeSequence(chromosome_seq);
88+
seq.setDNAType(dnaType);
89+
assertEquals(dnaType, seq.getDNAType());
90+
}
91+
92+
@Nested
93+
class AddingAndRemovingGeneSequences {
94+
ChromosomeSequence seq = null;
95+
@BeforeEach
96+
void before() throws CompoundNotFoundException {
97+
seq = new ChromosomeSequence(chromosome_seq);
98+
}
99+
@Test
100+
void canAddSameGeneTwice(){
101+
seq.addGene(new AccessionID("ABCDE1"), 1, 20, Strand.POSITIVE);
102+
assertEquals(1, seq.getGeneSequences().size());
103+
seq.addGene(new AccessionID("ABCDE1"), 1, 20, Strand.POSITIVE);
104+
assertEquals(1, seq.getGeneSequences().size());
105+
}
106+
107+
@Test
108+
void isOKToRemoveNonExistentSequence(){
109+
seq.removeGeneSequence("XXX");
110+
}
111+
112+
@Test
113+
void addAndRemove(){
114+
final String accessionId = "ABCDE1";
115+
GeneSequence geneSequence = seq.addGene(new AccessionID(accessionId), 1, 20, Strand.POSITIVE);
116+
assertEquals(geneSequence.getAccession(), seq.getGene(accessionId).getAccession());
117+
assertEquals(1, seq.getGeneSequences().size());
118+
seq.removeGeneSequence(accessionId);
119+
assertEquals(0, seq.getGeneSequences().size());
120+
121+
}
122+
123+
@Test
124+
void geneSequenceHasCorrectLength(){
125+
final String accessionId = "ABCDE1";
126+
GeneSequence geneSequence = seq.addGene(new AccessionID(accessionId), 1, 20, Strand.POSITIVE);
127+
assertEquals(20, geneSequence.getLength());
128+
}
129+
130+
@Test
131+
void geneSequenceCanHaveBeginAndEndOutsideOfChromosomeSeq(){
132+
final String accessionId = "ABCDE1";
133+
GeneSequence geneSequence = seq.addGene(new AccessionID(accessionId), Integer.MAX_VALUE-10, Integer.MAX_VALUE, Strand.POSITIVE);
134+
assertEquals(11, geneSequence.getLength());
135+
136+
}
137+
}
138+
139+
@Test
140+
void addAndRemoveGeneSequence() throws CompoundNotFoundException {
141+
ChromosomeSequence seq = new ChromosomeSequence(chromosome_seq);
142+
seq.addGene(new AccessionID("ABCDE1"), 1, 20, Strand.POSITIVE);
143+
assertEquals(1, seq.getGeneSequences().size());
144+
145+
146+
// still present
147+
assertEquals(1, seq.getGeneSequences().size());
148+
// can be added again with sam
149+
seq.addGene(new AccessionID("ABCDE1"), 1, 20, Strand.POSITIVE);
150+
assertEquals(1, seq.getGeneSequences().size());
151+
152+
}
153+
154+
155+
156+
@Test
157+
void addGene() {
158+
}
159+
160+
@Test
161+
void getGene() {
162+
}
163+
}

0 commit comments

Comments
 (0)