Example #1
0
        public void CutomIntervalCompare()
        {
            var interval1 = new VariantAnnotation.DataStructures.CustomInterval("chr1", 1000, 2000, "test",
                                                                                new Dictionary <string, string> {
                ["k1"] = "v1"
            }, null);
            var interval2 = new VariantAnnotation.DataStructures.CustomInterval("chr1", 1000, 2000, "test",
                                                                                new Dictionary <string, string> {
                ["k1"] = "v1"
            }, null);
            var interval3 = new VariantAnnotation.DataStructures.CustomInterval("chr1", 1010, 2000, "test",
                                                                                new Dictionary <string, string> {
                ["k1"] = "v1"
            }, null);
            var interval4 = new VariantAnnotation.DataStructures.CustomInterval("chr2", 1010, 2000, "test",
                                                                                new Dictionary <string, string> {
                ["k1"] = "v1"
            }, null);

            Assert.True(interval1.Equals(interval2));
            Assert.Equal(-1, interval1.CompareTo(interval3));
            Assert.Equal(-1, interval1.CompareTo(interval4));

            var intervalHash = new HashSet <VariantAnnotation.DataStructures.CustomInterval> {
                interval4, interval1
            };

            Assert.Equal(2, intervalHash.Count);
        }
        public void DifferentTypeException()
        {
            var customInterval = new VariantAnnotation.DataStructures.CustomInterval("chr1", 100, 200, "WrongType",
                                                                                     null, null);
            var randomPath = GetRandomPath();

            var dataVersion = new DataSourceVersion("customInterval", "00", DateTime.Now.Ticks);

            using (var writer = new CustomIntervalWriter(randomPath, "chr1", _intervalType, dataVersion))
            {
                // ReSharper disable once AccessToDisposedClosure
                var ex = Assert.Throws <Exception>(() => writer.WriteInterval(customInterval));

                Assert.Equal($"Unexpected interval in custom interval writer.\nExpected interval type: {_intervalType}, observed interval type: WrongType", ex.Message);
            }
        }
        public CustomIntervalReadAndWriteTests()
        {
            _intervalType = "TestInterval";

            for (var i = 0; i < _totalIntervals; i++)
            {
                var start = 100 + i * 10000;
                var end   = 200 + i * 100 + i * 10000;

                var geneName = "TestGene" + i;
                var evidence = "Class" + i;
                var length   = end - start + 1;
                // ReSharper disable once PossibleLossOfFraction
                float score = i * 3 / 5;

                var stringValues    = new Dictionary <string, string>();
                var nonstringValues = new Dictionary <string, string>();

                stringValues.Add("Gene", geneName);
                stringValues.Add("Evidence", evidence);
                nonstringValues.Add("score", score.ToString(CultureInfo.InvariantCulture));
                nonstringValues.Add("length", length.ToString());

                if (i == 0)
                {
                    var customInterval = new VariantAnnotation.DataStructures.CustomInterval("chr1", start, end, _intervalType,
                                                                                             null, null);
                    _expectedCustomIntervals.Add(customInterval);
                }
                else
                {
                    var customInterval = new VariantAnnotation.DataStructures.CustomInterval("chr1", start, end, _intervalType,
                                                                                             stringValues, nonstringValues);
                    _expectedCustomIntervals.Add(customInterval);
                }
            }

            _randomPath = GetRandomPath();

            WriteCustomIntevalFile(_randomPath);
        }