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)); }
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)); }
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)); }