コード例 #1
0
        public void TestDistanceStartEnd()
        {
            Sequence seq = new Sequence(AlphabetType.DNA, "acgtactg");
            Feature feature1 = new Feature("feature1", 2, 4, +1);
            Feature feature2 = new Feature("feature2", 5, 7, +1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(5, feature1.DistanceStartEnd(feature2));
            Assert.AreEqual(7, feature2.DistanceStartEnd(feature1));
        }
コード例 #2
0
        public void TestDistanceDownStream()
        {
			Sequence seq = new Sequence( AlphabetType.DNA, "acgtactgactg", true );

            Feature feature1;
            Feature feature2;

            feature1 = new Feature("feature1", 6, 8, +1);
            feature2 = new Feature("feature2", 2, 3, +1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(5, feature1.DistanceDownstream(feature2));
            Assert.AreEqual(2, feature2.DistanceDownstream(feature1));

            //Reverse circular strand
            feature1 = new Feature("feature1", 6, 8, -1);
            feature2 = new Feature("feature2", 2, 3, -1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(5, feature2.DistanceDownstream(feature1));
            Assert.AreEqual(2, feature1.DistanceDownstream(feature2));

            //Circular mixed strand
            feature1 = new Feature("feature1", 6, 8, +1);
            feature2 = new Feature("feature2", 2, 3, -1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(5, feature2.DistanceDownstream(feature1));
            Assert.AreEqual(5, feature1.DistanceDownstream(feature2));

            seq = new Sequence(AlphabetType.DNA, "acgtactgactg", false);
            //linear strand
            feature1 = new Feature("feature1", 6, 8, +1);
            feature2 = new Feature("feature2", 2, 3, +1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(4, feature1.DistanceDownstream(feature2));
            Assert.AreEqual(2, feature2.DistanceDownstream(feature1));

            //Linear mixed strand
            feature1 = new Feature("feature1", 6, 8, +1);
            feature2 = new Feature("feature2", 2, 3, -1);

            feature1.SetSequence(seq);
            feature2.SetSequence(seq);

            Assert.AreEqual(4, feature1.DistanceDownstream(feature2));
            Assert.AreEqual(1, feature2.DistanceDownstream(feature1));
        }
コード例 #3
0
        public void TestIsInside()
        {
            Sequence seq = new Sequence(AlphabetType.DNA, "acgtgat");
            Feature feature1 = new Feature("feature1", 2, 4, +1);
            feature1.SetSequence(seq);

            Assert.AreEqual(true, feature1.IsInside(seq, 2));
            Assert.AreEqual(false, feature1.IsInside(seq, 1));
            Assert.AreEqual(true, feature1.IsInside(seq, 4));
            Assert.AreEqual(false, feature1.IsInside(seq, 5));

            Sequence sub1 = new Sequence(seq, 2, 4, +1);
            Assert.AreEqual(true, feature1.IsInside(sub1, 1));
            Assert.AreEqual(false, feature1.IsInside(sub1, 0));
            Assert.AreEqual(true, feature1.IsInside(sub1, 3));
            Assert.AreEqual(false, feature1.IsInside(sub1, 4));

            Sequence sub2 = new Sequence(sub1, 1, 3, +1);
            Assert.AreEqual(true, feature1.IsInside(sub2, 1));
            Assert.AreEqual(false, feature1.IsInside(sub2, 0));
            Assert.AreEqual(true, feature1.IsInside(sub2, 3));
            Assert.AreEqual(false, feature1.IsInside(sub2, 4));

            sub2 = new Sequence(sub1, 1, 3, -1);
            Assert.AreEqual(true, feature1.IsInside(sub2, 1));
            Assert.AreEqual(false, feature1.IsInside(sub2, 0));
            Assert.AreEqual(true, feature1.IsInside(sub2, 3));
            Assert.AreEqual(false, feature1.IsInside(sub2, 4));

            sub1 = new Sequence(seq, 2, 4, -1);
            Assert.AreEqual(true, feature1.IsInside(sub1, 1));
            Assert.AreEqual(false, feature1.IsInside(sub1, 0));
            Assert.AreEqual(true, feature1.IsInside(sub1, 3));
            Assert.AreEqual(false, feature1.IsInside(sub1, 4));

            sub2 = new Sequence(sub1, 1, 3, +1);
            Assert.AreEqual(true, feature1.IsInside(sub2, 1));
            Assert.AreEqual(false, feature1.IsInside(sub2, 0));
            Assert.AreEqual(true, feature1.IsInside(sub2, 3));
            Assert.AreEqual(false, feature1.IsInside(sub2, 4));

            sub2 = new Sequence(sub1, 1, 3, -1);
            Assert.AreEqual(true, feature1.IsInside(sub2, 1));
            Assert.AreEqual(false, feature1.IsInside(sub2, 0));
            Assert.AreEqual(true, feature1.IsInside(sub2, 3));
            Assert.AreEqual(false, feature1.IsInside(sub2, 4));
        }