/* Copyright 2013 University of North Carolina at Chapel Hill. All rights reserved. */
package abra;
import static org.testng.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import htsjdk.samtools.SAMRecord;
import org.testng.Assert;
import org.testng.annotations.Test;
public class RealignerTest {
/*
@Test (groups = "unit")
public void testUpdateReadAlignment() {
SAMRecord contigRead = new SAMRecord(null);
contigRead.setReferenceName("chr21");
contigRead.setCigarString("201M50I1105M2D563M");
contigRead.setAlignmentStart(36205060);
SAMRecord origRead = new SAMRecord(null);
List<ReadBlock> blocks = ReadBlock.getReadBlocks(contigRead);
Assert.assertEquals(blocks.size(), 5);
ReadPosition readPosition = new ReadPosition(origRead, 1266, 0);
}
*/
// TODO: Move to RegionLoaderTest
@Test (groups = "unit")
public void testCollapseRegions() {
List<Feature> input = new ArrayList<Feature>();
input.add(new Feature("chr20", 1, 2000));
input.add(new Feature("chr20", 2050, 10000));
input.add(new Feature("chr20", 10020, 20000));
input.add(new Feature("chr20", 20100, 20200));
input.add(new Feature("chr21", 20201, 20300));
List<Feature> features = RegionLoader.collapseRegions(input, 70);
assertEquals(features.size(), 3);
validateFeature(features.get(0), 1, 20000);
validateFeature(features.get(1), 20100, 20200);
validateFeature(features.get(2), 20201, 20300);
}
/*
@Test (groups = "unit")
public void testSplitRegions() {
List<Feature> input = new ArrayList<Feature>();
input.add(new Feature("chr20", 1, 2000));
input.add(new Feature("chr20", 2001, 10000));
input.add(new Feature("chr20", 9523233, 9523367));
input.add(new Feature("chr21", 36205258, 36206898));
input.add(new Feature("chr22", 21303999, 21308037));
ReAligner realigner = new ReAligner();
List<Feature> features = realigner.splitRegions(input, 2000, 500, 200);
assertEquals(features.size(), 9);
// first
validateFeature(features.get(0), 1, 2000);
// second
validateFeature(features.get(1), 2001, 4201);
validateFeature(features.get(2), 4001, 6201);
validateFeature(features.get(3), 6001, 8201);
validateFeature(features.get(4), 8001, 10000);
// third
validateFeature(features.get(5), 9523233, 9523367);
// fourth
validateFeature(features.get(6), 36205258, 36206898);
// fifth
validateFeature(features.get(7), 21303999, 21306199);
validateFeature(features.get(8), 21305999, 21308037);
}
*/
private void validateFeature(Feature feature, int expectedStart, int expectedEnd) {
assertEquals(feature.getStart(), expectedStart);
assertEquals(feature.getEnd(), expectedEnd);
}
}