/*
* Eoulsan development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public License version 2.1 or
* later and CeCILL-C. This should be distributed with the code.
* If you do not have a copy, see:
*
* http://www.gnu.org/licenses/lgpl-2.1.txt
* http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.txt
*
* Copyright for this code is held jointly by the Genomic platform
* of the Institut de Biologie de l'École normale supérieure and
* the individual authors. These should be listed in @author doc
* comments.
*
* For more information on the Eoulsan project and its aims,
* or to join the Eoulsan Google group, visit the home page
* at:
*
* http://outils.genomique.biologie.ens.fr/eoulsan
*
*/
package fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import htsjdk.samtools.SAMLineParser;
import htsjdk.samtools.SAMRecord;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import fr.ens.biologie.genomique.eoulsan.bio.GenomeDescription;
import fr.ens.biologie.genomique.eoulsan.bio.SAMUtils;
import fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.QualityReadAlignmentsFilter;
import fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.ReadAlignmentsFilterBuffer;
/**
* This class is a JUnit test class to test the class
* ReadAlignmentsFilterBuffer.java.
* @author Claire Wallon
*/
public class ReadAlignmentsFilterBufferTest {
private String recordSE1, recordSE2, recordSE3, recordSE4, recordSE5;
private String recordSE6, recordSE7;
private String recordPE1, recordPE2, recordPE3, recordPE4;
private String recordPE5, recordPE6, recordPE7, recordPE8;
private String recordPE9, recordPE10;
private SAMRecord samRecordSE1, samRecordSE2;
private SAMRecord samRecordSE3, samRecordSE4, samRecordSE5;
private SAMRecord samRecordSE6, samRecordSE7;
private SAMRecord samRecordPE1, samRecordPE2, samRecordPE3, samRecordPE4;
private SAMRecord samRecordPE5, samRecordPE6, samRecordPE7, samRecordPE8;
private SAMRecord samRecordPE9, samRecordPE10;
private List<SAMRecord> recordsVerif;
private QualityReadAlignmentsFilter filter;
private ReadAlignmentsFilterBuffer rafb;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
// all records (single-end and paired-end modes) have a good mapping
// quality score (above the threshold)
this.recordSE1 =
"HWI-EAS285_0001_'':1:1:1260:18686#0/1\t16\tchr4\t129576419\t72\t76M\t*\t0\t0"
+ "\tGACGGATCCGAGANANTGANNTGANAAGAGGNNNNNNNNNNNNNNAATTTGAGGACCNAAGGGATGCAGATGATGC"
+ "\tGEGEGE:@=BB><#7#AA:##@CC#CA9A8;##############=GGGGGDCDCDD#DDCGFGDGGGGBGGGGGG"
+ "\tXA:i:1\tMD:Z:13T1T3C0T3A2C3T0T0T0T0G0G0T0T0T0T0G0T0G0G12C18\tNM:i:21";
this.recordSE2 =
"HWI-EAS285_0001_'':1:1:1260:13682#0/1\t0\tchr16\t23360177\t55\t76M\t*\t0\t0\t"
+ "ATTTGCGACAGGTAGTTTNAAATCTGTGACTNNNNNNNNNNNNNNAGTGNCNTTCNNCGTNGNCACTGACGTCACT"
+ "\tGGGGFGGGGFCECEEBCB#ACCCCCGGFGGA##############AA=A#A#A?A##A=?#9#8?CCB>CGEGGGA\tXA:i:1\tMD:Z:18A12G0A0G0T0G0C0T0A0T0A0G0G0A0A4T1T3T0A3G1G13\tNM:i:21";
// recordSE3, recordSE4 and recordSE5 are various matches of the same read
this.recordSE3 =
"HWI-EAS285_0001_'':1:1:1259:2442#0/1\t16\tchr9\t59513044\t50\t76M\t*\t0\t0"
+ "\tGGGACTGCCTTCANNNAGANNCAGNANCTCCNNNNNNNNNNNNNNGACACCTTCCTGNAACACATGTGCCGCCTGG"
+ "\t#############################################ABE@?E@>CC@C#BBDEDGGGGFFEGEGGGG"
+ "\tXA:i:1\tMD:Z:13T0T0C3C0C3C1G4A0T0G0C0A0G0C0C0A0T0G0G0C0T12G18\tNM:i:22";
this.recordSE4 =
"HWI-EAS285_0001_'':1:1:1259:2442#0/1\t0\tchr5\t22231887\t55\t76M\t*\t0\t0"
+ "\tCCAGGCGGCACATGTGTTNCAGGAAGGTGTCNNNNNNNNNNNNNNGGAGNTNCTGNNTCTNNNTGAAGGCAGTCCC"
+ "\tGGGGEGEFFGGGGDEDBB#C@CC>@E?@EBA#############################################"
+ "\tXA:i:1\tMD:Z:18C12A0G0C0C0A0T0G0G0C0T0G0C0A0T4C1G3G0G3G0A0A13"
+ "\tNM:i:22";
this.recordSE5 =
"HWI-EAS285_0001_'':1:1:1259:2442#0/1\t0\tchr13\t14002582\t72\t76M\t*\t0\t0"
+ "\tCCAGGCGGCACATGTGTTNCAGGAAGGTGTCNNNNNNNNNNNNNNGGAGNTNCTGNNTCTNNNTGAAGGCAGTCCC"
+ "\tGGGGEGEFFGGGGDEDBB#C@CC>@E?@EBA#############################################"
+ "\tXA:i:2\tMD:Z:18C3A8A0G0C0C0A0T0T0G0C0T0C0C0A0T4C1G2A0G0G3G0A0A5A6A0\tNM:i:26";
// recordSE6 and recordSE7 are various matches of the same read
this.recordSE6 =
"HWI-EAS285_0001_'':1:1:1259:1873#0/1\t16\tchr2\t28011331\t255\t76M\t*\t0\t0"
+ "\tGTCTGGCTCCGACNCNCAGGNACCNCNGCCCNNNNNNNNNNNNNNAAGAGCCAGTTCNGGGGTCCCTGGGCCACAC"
+ "\t##############################################EEE:E=<?5=?#BAAF=AFFEFFFDE?EEE"
+ "\tXA:i:1\tMD:Z:0C2A3A0G0T3T1T4C3A1A1A2G0C0T0G0G0G0T0A0C0T0G0A0A0G12T18\tNM:i:26";
this.recordSE7 =
"HWI-EAS285_0001_'':1:1:1259:1873#0/1\t16\tchr12\t56412446\t255\t76M\t*\t0\t0"
+ "\tGTCTGGCTCCGACNCNCAGGNACCNCNGCCCNNNNNNNNNNNNNNAAGAGCCAGTTCNGGGGTCCCTGGGCCACAC"
+ "\t##############################################EEE:E=<?5=?#BAAF=AFFEFFFDE?EEE"
+ "\tXA:i:1\tMD:Z:13T1T4T3A1A1A2A0C0T0G0G0G0T0A0C0C0A0C0A0G12T18\tNM:i:21";
// recordPE1 and recordPE2 paired
this.recordPE1 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2462:2222\t99\tchr13\t34124505\t75\t101M\t=\t34124588\t184"
+ "\tCTGANAGAGAAAGTTTACCAAATGCTTCAGAAGTGGCTGATGCGGGAAGGCACCAAAGGGGCCACAGTGGGAAAGTTGGCCCAGGCACTTCACCAATGTTG"
+ "\tCCCF#2ADHHGHHIIJJJJJJJJJJJJJJIJJIGIIJJJGGIDHIJGIIIIIJJIJH?CHFFDDDEDCDDDBDDBDCDDDDDD?BDDDDDDDDDDDDDDED"
+ "\tXA:i:1\tMD:Z:4A96\tNM:i:1";
this.recordPE2 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2462:2222\t147\tchr13\t34124588\t145\t101M\t=\t34124505\t-184"
+ "\tGGCACTTCACCAATGTTGCAGGATAGACCTGCTGAACCACTTGATTCGTGCCAGCCAGAGCTAAGCCTGGGCAGGCTCTGGCAGTGGGAAGCAAACTATTT"
+ "\tDDDCDDDDDDDDDDDDDDDEEDEEDEBFFFFHGHHHHJIJJJJJJJJJJIGJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJHHHHHFFFFFCCC"
+ "\tXA:i:0\tMD:Z:101\tNM:i:0";
// recordPE3, recordPE4, recordPE5 and recordPE6 are various matches of
// the same read
// recordPE3 and recordPE4 paired
this.recordPE3 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:1668:2230\t99\tchr12\t76732159\t128\t101M\t=\t76732246\t188"
+ "\tCTTTCCATTCAGCTCACTGATGACCTTGTTGAGCCGATCATCGACCGCTTCGATGCCCACGCTGTCTAGTATTTTCTTGATGTCTTTGGCGCTAGGAGAGG"
+ "\tCCCFFFFFHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ@GIIIJJJJJJJHHHHHFFDDDDDEDDDFFFEDDDDDDDEDEDDDDDDDDDDDDDBDD\tXA:i:0\tMD:Z:43T20C36\tNM:i:2";
this.recordPE4 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:1668:2230\t147\tchr12\t76732246\t60\t101M\t=\t76732159\t-188"
+ "\tGGCGCTAGGAGAGGAGTTGCCCCCGAGGGCGGCCAGCAGGTAAGAGGCGACGTAGCGCATGTCGGCTGCGGGGGACAGACCTCACGCGTGCGACCTCGGCG"
+ "\tBDBDDDCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDBDDDDBDDDDDDDFFFHHJJJJJJJJJHFJJIHGJJJJHHHHHFFFFFCCC\tXA:i:1\tMD:Z:100A0\tNM:i:1";
// recordPE5 and recordPE6 paired
this.recordPE5 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:1668:2230\t99\tchr4\t129192614\t74\t101M\t=\t129192649\t136"
+ "\tCTTTTTGCCCTCCTGTGGATTCTCCCATCAGCCATTTGGTCTTACTCTTAAGGCCAGTTGAAGATGGTCCCTTACGGTTTCCCAAGTTAGGTTAGTGATGT"
+ "\tCCCFFFFFHHHHHJJHJIJJJIJJJJJJJJJIJJJJJJIIHIJJJJIJJJJJJJJJJIJJJJJIJJJHIJJJJHHEHDFFFEEEEDDDEDDCCDDCDEEDC\tXA:i:1\tMD:Z:5C95\tNM:i:1";
this.recordPE6 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:1668:2230\t147\tchr4\t129192649\t230\t101M\t=\t129192614\t-136"
+ "\tTTGGTCTTACTCTTAAGGCCAGTTGAAGATGGTCCCTTACGGTTTCCCAAGTTAGGTTAGTGATGTGAGATGCCCTGTCCCTACCTCCTTCCCGAGCCCCG"
+ "\tDDDDDCDCADDDDDDDDDDDDDDEEDDDDDDDDDDDDDBDEEFFFFHHHHEHIEJJJIGJIIGGIIJIJJIIJJJJIHJHGD?JIHJJHFHHGFFFFFCCC\tXA:i:2\tMD:Z:87T12A0\tNM:i:2";
// recordPE7 and recordPE8 paired
this.recordPE7 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2584:2222\t99\tchr1\t173235257\t255\t101M\t=\t173235280\t124"
+ "\tCTTGTATCGCTCCTCAAACTTGACCTTGGCCTCCCGCCTGGCCTTGCGCTTCAAAGCTGGGTCCCTGAACACATCCTTGTTGACAACAGTCTTGTCCAAGG"
+ "\tCCCFFFFFHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJHIIJIJJIIIIJJJJJIIJHHHHFFFFFDEEEEDDDDDDDDDDDDDDDDDDDDDEDDDDDDDD"
+ "\tXA:i:0\tMD:Z:101\tNM:i:0";
this.recordPE8 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2584:2222\t147\tchr1\t173235280\t255\t101M\t=\t173235257\t-124"
+ "\tCCTTGGCCTCCCGCCTGGCCTTGCGCTTCAAAGCTGGGTCCCTGAACACATCCTTGTTGACAACAGTCTTGTCCAAGGGGATATCCACAGAGTACCTTGTG"
+ "\tDDDDDDDDDDDDDDDDDDDDDDDFFHHHHHHJJJJJJJJJHDJJJJJIJIHIJJJJJIIIJJJIJJIJJJJJHJJJJJJJJJJJJJJJHHHHHDFFFFCCC"
+ "\tXA:i:0\tMD:Z:101\tNM:i:0";
this.recordPE9 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2584:2222\t99\tchr11\t93898574\t255\t101M\t=\t93898597\t124"
+ "\tCTTGTATCGCTCCTCAAACTTGACCTTGGCCTCCCGCCTGGCCTTGCGCTTCAAAGCTGGGTCCCTGAACACATCCTTGTTGACAACAGTCTTGTCCAAGG"
+ "\tCCCFFFFFHHHHHJJJJJJJJJJJJJJJJJJJJJJJJJHIIJIJJIIIIJJJJJIIJHHHHFFFFFDEEEEDDDDDDDDDDDDDDDDDDDDDEDDDDDDDD"
+ "\tXA:i:0\tMD:Z:101\tNM:i:0";
this.recordPE10 =
"HWI-1KL110:37:C0BE6ACXX:7:1101:2584:2222\t147\tchr11\t93898597\t255\t101M\t=\t93898574\t-124"
+ "\tCCTTGGCCTCCCGCCTGGCCTTGCGCTTCAAAGCTGGGTCCCTGAACACATCCTTGTTGACAACAGTCTTGTCCAAGGGGATATCCACAGAGTACCTTGTG"
+ "\tDDDDDDDDDDDDDDDDDDDDDDDFFHHHHHHJJJJJJJJJHDJJJJJIJIHIJJJJJIIIJJJIJJIJJJJJHJJJJJJJJJJJJJJJHHHHHDFFFFCCC"
+ "\tXA:i:0\tMD:Z:101\tNM:i:0";
final GenomeDescription desc = new GenomeDescription();
desc.addSequence("chr1", 197195432);
desc.addSequence("chr2", 181748087);
desc.addSequence("chr4", 155630120);
desc.addSequence("chr5", 152537259);
desc.addSequence("chr9", 124076172);
desc.addSequence("chr11", 121843856);
desc.addSequence("chr12", 121257530);
desc.addSequence("chr13", 120284312);
// desc.addSequence("chr15", 103494974);
desc.addSequence("chr16", 98319150);
SAMLineParser parser = new SAMLineParser(SAMUtils.newSAMFileHeader(desc));
this.samRecordSE1 = parser.parseLine(this.recordSE1);
this.samRecordSE2 = parser.parseLine(this.recordSE2);
this.samRecordSE3 = parser.parseLine(this.recordSE3);
this.samRecordSE4 = parser.parseLine(this.recordSE4);
this.samRecordSE5 = parser.parseLine(this.recordSE5);
this.samRecordSE6 = parser.parseLine(this.recordSE6);
this.samRecordSE7 = parser.parseLine(this.recordSE7);
this.samRecordPE1 = parser.parseLine(this.recordPE1);
this.samRecordPE2 = parser.parseLine(this.recordPE2);
this.samRecordPE3 = parser.parseLine(this.recordPE3);
this.samRecordPE4 = parser.parseLine(this.recordPE4);
this.samRecordPE5 = parser.parseLine(this.recordPE5);
this.samRecordPE6 = parser.parseLine(this.recordPE6);
this.samRecordPE7 = parser.parseLine(this.recordPE7);
this.samRecordPE8 = parser.parseLine(this.recordPE8);
this.samRecordPE9 = parser.parseLine(this.recordPE9);
this.samRecordPE10 = parser.parseLine(this.recordPE10);
this.recordsVerif = new ArrayList<>();
this.filter = new QualityReadAlignmentsFilter();
this.filter.setParameter("threshold", "50");
this.rafb = new ReadAlignmentsFilterBuffer(this.filter);
}
/**
* Test method for {fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.
* ReadAlignmentsFilterBuffer#addAlignment(net.sf.samtools.SAMRecord)} and
* {fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.
* ReadAlignmentsFilterBuffer #getFilteredAlignments(boolean)}.
*/
@Test
public void testAddAlignmentAndGetFilteredAlignments() {
// single-end mode
// first case
assertTrue(this.rafb.addAlignment(this.samRecordSE1));
assertFalse(this.rafb.addAlignment(this.samRecordSE3));
this.recordsVerif.add(this.samRecordSE1);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE3));
assertTrue(this.rafb.addAlignment(this.samRecordSE4));
assertTrue(this.rafb.addAlignment(this.samRecordSE5));
assertFalse(this.rafb.addAlignment(this.samRecordSE2));
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE3);
this.recordsVerif.add(this.samRecordSE4);
this.recordsVerif.add(this.samRecordSE5);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE2));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// second case
assertTrue(this.rafb.addAlignment(this.samRecordSE3));
assertTrue(this.rafb.addAlignment(this.samRecordSE4));
assertFalse(this.rafb.addAlignment(this.samRecordSE1));
this.recordsVerif.add(this.samRecordSE3);
this.recordsVerif.add(this.samRecordSE4);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE1));
assertFalse(this.rafb.addAlignment(this.samRecordSE5));
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE1);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE5));
assertTrue(this.rafb.addAlignment(this.samRecordSE3));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE5);
this.recordsVerif.add(this.samRecordSE3);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// third case
assertTrue(this.rafb.addAlignment(this.samRecordSE1));
assertFalse(this.rafb.addAlignment(this.samRecordSE2));
this.recordsVerif.add(this.samRecordSE1);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE2));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// fourth case
assertTrue(this.rafb.addAlignment(this.samRecordSE3));
assertTrue(this.rafb.addAlignment(this.samRecordSE4));
assertFalse(this.rafb.addAlignment(this.samRecordSE6));
this.recordsVerif.add(this.samRecordSE3);
this.recordsVerif.add(this.samRecordSE4);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordSE6));
assertTrue(this.rafb.addAlignment(this.samRecordSE7));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordSE6);
this.recordsVerif.add(this.samRecordSE7);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// paired-end mode
// first case
assertTrue(this.rafb.addAlignment(this.samRecordPE1));
assertTrue(this.rafb.addAlignment(this.samRecordPE2));
assertFalse(this.rafb.addAlignment(this.samRecordPE3));
this.recordsVerif.add(this.samRecordPE1);
this.recordsVerif.add(this.samRecordPE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE3));
assertTrue(this.rafb.addAlignment(this.samRecordPE4));
assertTrue(this.rafb.addAlignment(this.samRecordPE5));
assertTrue(this.rafb.addAlignment(this.samRecordPE6));
assertFalse(this.rafb.addAlignment(this.samRecordPE1));
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE3);
this.recordsVerif.add(this.samRecordPE4);
this.recordsVerif.add(this.samRecordPE5);
this.recordsVerif.add(this.samRecordPE6);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE1));
assertTrue(this.rafb.addAlignment(this.samRecordPE2));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE1);
this.recordsVerif.add(this.samRecordPE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// second case
assertTrue(this.rafb.addAlignment(this.samRecordPE3));
assertTrue(this.rafb.addAlignment(this.samRecordPE4));
assertTrue(this.rafb.addAlignment(this.samRecordPE5));
assertTrue(this.rafb.addAlignment(this.samRecordPE6));
assertFalse(this.rafb.addAlignment(this.samRecordPE1));
this.recordsVerif.add(this.samRecordPE3);
this.recordsVerif.add(this.samRecordPE4);
this.recordsVerif.add(this.samRecordPE5);
this.recordsVerif.add(this.samRecordPE6);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE1));
assertTrue(this.rafb.addAlignment(this.samRecordPE2));
assertFalse(this.rafb.addAlignment(this.samRecordPE3));
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE1);
this.recordsVerif.add(this.samRecordPE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE3));
assertTrue(this.rafb.addAlignment(this.samRecordPE4));
assertTrue(this.rafb.addAlignment(this.samRecordPE5));
assertTrue(this.rafb.addAlignment(this.samRecordPE6));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE3);
this.recordsVerif.add(this.samRecordPE4);
this.recordsVerif.add(this.samRecordPE5);
this.recordsVerif.add(this.samRecordPE6);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// third case
assertTrue(this.rafb.addAlignment(this.samRecordPE1));
assertTrue(this.rafb.addAlignment(this.samRecordPE2));
assertFalse(this.rafb.addAlignment(this.samRecordPE3));
this.recordsVerif.add(this.samRecordPE1);
this.recordsVerif.add(this.samRecordPE2);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE3));
assertTrue(this.rafb.addAlignment(this.samRecordPE4));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE3);
this.recordsVerif.add(this.samRecordPE4);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
this.recordsVerif.clear();
// fourth case
assertTrue(this.rafb.addAlignment(this.samRecordPE3));
assertTrue(this.rafb.addAlignment(this.samRecordPE4));
assertTrue(this.rafb.addAlignment(this.samRecordPE5));
assertTrue(this.rafb.addAlignment(this.samRecordPE6));
assertFalse(this.rafb.addAlignment(this.samRecordPE7));
this.recordsVerif.add(this.samRecordPE3);
this.recordsVerif.add(this.samRecordPE4);
this.recordsVerif.add(this.samRecordPE5);
this.recordsVerif.add(this.samRecordPE6);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
assertTrue(this.rafb.addAlignment(this.samRecordPE7));
assertTrue(this.rafb.addAlignment(this.samRecordPE8));
assertTrue(this.rafb.addAlignment(this.samRecordPE9));
assertTrue(this.rafb.addAlignment(this.samRecordPE10));
// rafb.checkBuffer();
this.recordsVerif.clear();
this.recordsVerif.add(this.samRecordPE7);
this.recordsVerif.add(this.samRecordPE8);
this.recordsVerif.add(this.samRecordPE9);
this.recordsVerif.add(this.samRecordPE10);
assertEquals(this.recordsVerif, this.rafb.getFilteredAlignments());
}
/**
* Test method for {fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.
* ReadAlignmentsFilterBuffer
* #ReadAlignmentsFilterBuffer(fr.ens.biologie.genomique.eoulsan
* .bio.alignmentsfilters.ReadAlignmentsFilter)}.
*/
@Test
public void testReadAlignmentsFilterBufferReadAlignmentsFilter() {
// fail("Not yet implemented");
}
/**
* Test method for {fr.ens.biologie.genomique.eoulsan.bio.alignmentsfilters.
* ReadAlignmentsFilterBuffer
* #ReadAlignmentsFilterBuffer(fr.ens.biologie.genomique.eoulsan
* .bio.alignmentsfilters.ReadAlignmentsFilter, boolean)}.
*/
@Test
public void testReadAlignmentsFilterBufferReadAlignmentsFilterBoolean() {
// fail("Not yet implemented");
}
}