コード例 #1
0
        public void Equality()
        {
            var segment1 = new Segment("E", false);
            var segment2 = new Segment("+", true);
            var segment3 = new Segment("Number", true);

            var production1 = new Production(segment1, ImmutableArray.Create(segment1, segment2, segment3));
            var production2 = new Production(segment1, ImmutableArray.Create(segment1, segment2, segment3));
            var production3 = new Production(segment1, ImmutableArray.Create(segment3));

            var itemA = new ParseItem(production1, 1);
            var itemB = new ParseItem(production2, 1);
            var itemC = new ParseItem(production3, 1);
            var itemD = new ParseItem(production1, 2);

            Assert.That(itemA.Equals(itemB), Is.EqualTo(true), "itemA == itemB");
            Assert.That(itemB.Equals(itemA), Is.EqualTo(true), "itemB == itemA");
            Assert.That(itemA.GetHashCode() == itemB.GetHashCode(), Is.EqualTo(true), "itemA.HC == itemB.HC");

            Assert.That(itemA.Equals(itemC), Is.EqualTo(false), "itemA == itemC");
            Assert.That(itemC.Equals(itemA), Is.EqualTo(false), "itemC == itemA");
            Assert.That(itemA.GetHashCode() == itemC.GetHashCode(), Is.EqualTo(false), "itemA.HC == itemC.HC");

            Assert.That(itemA.Equals(itemD), Is.EqualTo(false), "itemA == itemD");
            Assert.That(itemD.Equals(itemA), Is.EqualTo(false), "itemD == itemA");
            Assert.That(itemA.GetHashCode() == itemD.GetHashCode(), Is.EqualTo(false), "itemA.HC == itemD.HC");
        }
コード例 #2
0
        public void Equals()
        {
            var a = new ParseItem(default(EditorConfigDocument), ItemType.Keyword, new Span(10, 10), "a text");
            var b = new ParseItem(default(EditorConfigDocument), ItemType.Section, new Span(20, 10), "b text");
            var c = new ParseItem(default(EditorConfigDocument), ItemType.Keyword, new Span(10, 10), "a text");

            Assert.IsTrue(a == c);
            Assert.IsFalse(a != c);
            Assert.IsTrue(a != b);
            Assert.IsFalse(a == b);
            Assert.IsTrue(a.GetHashCode() != b.GetHashCode());
            Assert.IsTrue(a.Equals(a));
            Assert.IsTrue(a.Equals(c));
            Assert.IsFalse(a.Equals(b));
        }
コード例 #3
0
ファイル: SqlParser.cs プロジェクト: dstrucl/Tangenta40
        /// <summary>
        /// Count the plain SQL characters from the start item up to the end item
        /// Both items must exist!
        /// If an optional stringbuilder is passed it receives the SQL code
        /// </summary>
        protected static int MeasureLength(ParseItem i_ItemStart, ParseItem i_ItemEnd, StringBuilder s_Sql)
        {
            int Len = 0;
            do
            {
                if (s_Sql != null)
                {
                    s_Sql.Append(i_ItemStart.Text);
                    s_Sql.Append(" ");
                }

                Len += i_ItemStart.Text.Length + 1;
                i_ItemStart = i_ItemStart.Next;
            }
            while (!i_ItemStart.Equals(i_ItemEnd));
            return Len;
        }