public override bool Equals(object obj) { ProteolysisProduct pp = obj as ProteolysisProduct; return(pp != null && pp.OneBasedBeginPosition.Equals(OneBasedBeginPosition) && pp.OneBasedEndPosition.Equals(OneBasedEndPosition) && (pp.Type == null && Type == null || pp.Type.Equals(Type))); }
public void TestHashAndEqualsProteolysis() { ProteolysisProduct pp1 = new ProteolysisProduct(1, 2, "type"); ProteolysisProduct pp11 = new ProteolysisProduct(1, 2, "type"); ProteolysisProduct pp2 = new ProteolysisProduct(1, 2, null); ProteolysisProduct pp3 = new ProteolysisProduct(1, null, "type"); ProteolysisProduct pp4 = new ProteolysisProduct(null, 2, "type"); ProteolysisProduct pp5 = new ProteolysisProduct(1, 1, "type"); ProteolysisProduct pp6 = new ProteolysisProduct(2, 2, "type"); Assert.AreEqual(pp1, pp11); Assert.AreNotEqual(pp1, pp2); Assert.AreNotEqual(pp1, pp3); Assert.AreNotEqual(pp1, pp4); Assert.AreNotEqual(pp1, pp5); Assert.AreNotEqual(pp1, pp6); }
public static void CompareProteinProperties() { DatabaseReference d = new DatabaseReference("asdf", "asdfg", new List <Tuple <string, string> > { new Tuple <string, string>("bbb", "ccc") }); DatabaseReference dd = new DatabaseReference("asdf", "asdfg", new List <Tuple <string, string> > { new Tuple <string, string>("bbb", "ccc") }); DatabaseReference de = new DatabaseReference("asdf", "asdefg", new List <Tuple <string, string> > { new Tuple <string, string>("bbb", "ccc") }); DatabaseReference df = new DatabaseReference("asddf", "asdfg", new List <Tuple <string, string> > { new Tuple <string, string>("bbb", "ccc") }); DatabaseReference dg = new DatabaseReference("asdf", "asdfg", new List <Tuple <string, string> > { new Tuple <string, string>("babb", "ccc") }); DatabaseReference dh = new DatabaseReference("asdf", "asdfg", new List <Tuple <string, string> > { new Tuple <string, string>("bbb", "cccf") }); Assert.True(dd.Equals(d)); Assert.False(de.Equals(d)); Assert.False(df.Equals(d)); Assert.False(dg.Equals(d)); Assert.False(dh.Equals(d)); Assert.AreEqual(5, new HashSet <DatabaseReference> { d, dd, de, df, dg, dh }.Count); SequenceVariation s = new SequenceVariation(1, "hello", "hey", "hi"); SequenceVariation sv = new SequenceVariation(1, "hello", "hey", "hi"); SequenceVariation sss = new SequenceVariation(2, "hallo", "hey", "hi"); SequenceVariation ssss = new SequenceVariation(1, "hello", "heyy", "hi"); SequenceVariation sssss = new SequenceVariation(1, "hello", "hey", "hii"); Assert.True(s.Equals(sv)); Assert.False(s.Equals(sss)); Assert.False(s.Equals(ssss)); Assert.False(s.Equals(sssss)); Assert.AreEqual(4, new HashSet <SequenceVariation> { s, sv, sss, ssss, sssss }.Count); DisulfideBond b = new DisulfideBond(1, "hello"); DisulfideBond bb = new DisulfideBond(1, "hello"); DisulfideBond bbb = new DisulfideBond(1, 2, "hello"); DisulfideBond bbbb = new DisulfideBond(1, 2, "hello"); DisulfideBond ba = new DisulfideBond(1, 3, "hello"); DisulfideBond baa = new DisulfideBond(2, 2, "hello"); DisulfideBond baaa = new DisulfideBond(1, 2, "hallo"); Assert.AreEqual(b, bb); Assert.AreEqual(bbb, bbbb); Assert.AreNotEqual(b, bbb); Assert.AreNotEqual(ba, bbb); Assert.AreNotEqual(baa, bbb); Assert.AreNotEqual(baaa, bbb); Assert.AreEqual(5, new HashSet <DisulfideBond> { b, bb, bbb, bbbb, ba, baa, baaa }.Count); ProteolysisProduct pp = new ProteolysisProduct(1, 1, "hello"); ProteolysisProduct paaa = new ProteolysisProduct(1, 1, "hello"); ProteolysisProduct p = new ProteolysisProduct(null, null, "hello"); ProteolysisProduct ppp = new ProteolysisProduct(1, 2, "hello"); ProteolysisProduct pa = new ProteolysisProduct(2, 1, "hello"); ProteolysisProduct paa = new ProteolysisProduct(1, 1, "hallo"); Assert.AreEqual(pp, paaa); Assert.AreNotEqual(p, pp); Assert.AreNotEqual(pp, ppp); Assert.AreNotEqual(pp, pa); Assert.AreNotEqual(pp, paa); Assert.AreEqual(5, new HashSet <ProteolysisProduct> { p, pp, ppp, pa, paa, paaa }.Count); }
/// <summary> /// Determines whether this interval includes the queried interval /// </summary> /// <param name="segment"></param> /// <returns></returns> internal bool Includes(ProteolysisProduct segment) { return(OneBasedBeginPosition <= segment.OneBasedBeginPosition && OneBasedEndPosition >= segment.OneBasedEndPosition); }
/// <summary> /// Determines whether this interval overlaps the queried interval /// </summary> /// <param name="segment"></param> /// <returns></returns> internal bool Intersects(ProteolysisProduct segment) { return(segment.OneBasedEndPosition >= OneBasedBeginPosition && segment.OneBasedBeginPosition <= OneBasedEndPosition); }