public void ColumnsShuffle(byte chrColumn, byte leftColumn, sbyte rightColumn, byte nameColumn, byte valueColumn) { // Arrange var rg = new RegionGenerator { ChrColumn = chrColumn, LeftColumn = leftColumn, RightColumn = rightColumn, NameColumn = nameColumn, ValueColumn = valueColumn }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser( new BedColumns() { Chr = chrColumn, Left = leftColumn, Right = rightColumn, Name = nameColumn, Value = valueColumn }); var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0]; // Assert Assert.True(parsedPeak.CompareTo(rg.Peak) == 0); } }
public void ReadStrand() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // ACt var parser = new BedParser(); var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands.ContainsKey(rg.Strand)); } }
public void FullySetArguments() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(rg.Columns); var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0]; // Assert Assert.True(parsedPeak.CompareTo(rg.Peak) == 0); } }
public void ReadValue() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(); var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Value == rg.Value); } }
public void AssignHashKey() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(); var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].GetHashCode() != 0); } }
public void DefaultColumnsOrder() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator()) { // Act var parser = new BedParser(); var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0]; // Assert Assert.True(parsedPeak.CompareTo(rg.Peak) == 0); } }
public void BEDWithAllOptionalColumnsAndSomeExtraColumns() { // Arrange var rg = new RegionGenerator { SummitColumn = 10, StrandColumn = 11 }; using (var file = new TempFileCreator(rg, headerLineCount: 2, peaksCount: 10)) { // Act var parser = new BedParser(); var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.Count == 10); } }
public void ReadNoPeak() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg, peaksCount: 4)) { // Act var parser = new BedParser() { MaxLinesToRead = 0 }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes.Count == 0); } }
public void MaxLinesToRead(int numberOfPeaksToWrite, uint numberOfPeaksToRead) { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg, peaksCount: numberOfPeaksToWrite)) { // Act var parser = new BedParser() { MaxLinesToRead = numberOfPeaksToRead }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.Count == Math.Min(numberOfPeaksToWrite, numberOfPeaksToRead)); } }
public void TestStrand(sbyte strandColumn, char strand) { // Arrange var rg = new RegionGenerator { Strand = strand, StrandColumn = strandColumn }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(rg.Columns); // Assert Assert.True(parser.Parse(file.Path).Chromosomes[rg.Chr].Strands.ContainsKey(strand)); } }
public void ThrowExceptionForInvalidCultureInfo() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var exception = Assert.Throws <ArgumentOutOfRangeException>( () => new BedParser { Culture = "invalid_culture" }); // Assert Assert.False(string.IsNullOrEmpty(exception.Message)); Assert.Contains("Invalid culture info", exception.Message); } }
public void TestSummit(sbyte summitColumn, int summit) { // Arrange var rg = new RegionGenerator { SummitColumn = summitColumn }; rg.Summit = summit == -1 ? rg.Left + ((rg.Right - rg.Left) / 2) : summit; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(rg.Columns); var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0]; // Assert Assert.True(parsedPeak.Summit == rg.Summit); } }
public void PValueConversion(double originalValue, double convertedValue, PValueFormats pvalueFormat) { // Arrange var rg = new RegionGenerator { Value = convertedValue }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser() { PValueFormat = pvalueFormat }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Value == originalValue); } }
public void PValueAssertion(double value, PValueFormats pvalueFormat, bool validate, bool expected) { // Arrange var rg = new RegionGenerator { Value = value }; // Act using (var file = new TempFileCreator(rg)) { var parser = new BedParser() { PValueFormat = pvalueFormat, ValidatePValue = validate }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes.Any() == expected); } }
public void UseDefaultValueIfInvalidPValueColumn() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(new BedColumns() { Value = 9 }) { DropPeakIfInvalidValue = false }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes.ContainsKey(rg.Chr)); } }
public void TestExcessChrs(string chr) { // Arrange var rg = new RegionGenerator { Chr = chr }; using (var file = new TempFileCreator(rg)) { // Act BedParser <Peak> parser = new BedParser() { Assembly = Assemblies.hg19, ReadOnlyAssemblyChrs = false }; parser.Parse(file.Path); // Assert Assert.True(parser.ExcessChrs.Count == 1); } }
public void TestMissingChrs() { // Arrange var rg = new RegionGenerator { Chr = "chr1" }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser() { Assembly = Assemblies.hg19, ReadOnlyAssemblyChrs = false }; parser.Parse(file.Path); // Assert Assert.True(parser.MissingChrs.Count == References.GetGenomeSizes(Assemblies.hg19).Count - 1); } }
public void DropLineIfInvalidChr(string chr) { // Arrange var rg = new RegionGenerator { Chr = chr }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser() { Assembly = Assemblies.hg19, ReadOnlyAssemblyChrs = true }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes.Count == 0); } }
public void ParseIntervalChrWhenChrPrefixIsMissing(string chr) { // Arrange var rg = new RegionGenerator { Chr = chr }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser() { Assembly = Assemblies.hg19, ReadOnlyAssemblyChrs = true }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes.ContainsKey("chr" + chr)); } }
public void LogErrorIfFailedToReadALine() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(new BedColumns() { Value = 9 }) { DropPeakIfInvalidValue = true }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Messages.Count > 0); } }
public void InvalidNameColumn() { // Arrange var rg = new RegionGenerator(); using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(new BedColumns() { Name = 12 }) { DropPeakIfInvalidValue = false }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals[0].Name == null); } }
public void TestDelimiter(char delimiter) { // Arrange string chr = "chr1"; char strand = '*'; var rg = new RegionGenerator { Chr = chr, Strand = strand }; using (var file = new TempFileCreator(rg.GetSampleLine(delimiter))) { // Act var parser = new BedParser() { Delimiter = delimiter }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[chr].Strands[strand].Intervals[0].CompareTo(rg.Peak) == 0); } }
public void ReadValueInvariantCulture(double value, string culture) { // Arrange var rg = new RegionGenerator { Value = value, Culture = culture }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser { Culture = culture }; var parsedData = parser.Parse(file.Path); // Assert Assert.True(parsedData.Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0].Value == rg.Value); } }
public TempFileCreator(RegionGenerator columns, int headerLineCount = 0, int peaksCount = 1) { Path = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".bed"; FileStream stream = File.Create(Path); using (StreamWriter writer = new StreamWriter(stream)) { while (headerLineCount-- > 0) { writer.WriteLine(columns.GetSampleHeader()); } while (peaksCount-- > 0) { writer.WriteLine(columns.GetSampleLine()); if (peaksCount > 0) { columns.Left = columns.Right + 10; columns.Right = columns.Right + 20; } } } }
public void ColumnsSetters() { // Arrange var rg = new RegionGenerator { ChrColumn = 2, LeftColumn = 2, RightColumn = 9, ValueColumn = 0, SummitColumn = 2, NameColumn = 2, StrandColumn = 0, }; using (var file = new TempFileCreator(rg)) { // Act var parser = new BedParser(rg.Columns); var parsedPeak = parser.Parse(file.Path).Chromosomes[rg.Chr].Strands[rg.Strand].Intervals.ToList()[0]; // Assert Assert.True(parsedPeak.CompareTo(rg.Peak) == 0); } }