Ejemplo n.º 1
0
        public void TestVariantEquality()
        {
            // Self-Equality
            VariantId first = new VariantId(2);

            first.AddIdElement("one");
            first.AddIdElement("two");
            Assert.IsTrue(first.Equals(first));

            // Equality with a larger capacity variant
            VariantId larger = new VariantId(3);

            larger.AddIdElement("one");
            larger.AddIdElement("two");
            Assert.IsFalse(first.Equals(larger));

            // Equality with a similar size but underfilled
            VariantId third = new VariantId(2);

            third.AddIdElement("one");
            Assert.IsFalse(first.Equals(third));

            // Equality with similar ID
            third.AddIdElement("two");
            Assert.IsTrue(first.Equals(third));

            // Equality with same size and values but different order
            VariantId fourth = new VariantId(2);

            fourth.AddIdElement("two");
            fourth.AddIdElement("one");
            Assert.IsFalse(first.Equals(fourth));
        }
Ejemplo n.º 2
0
        public void TestVariantIdBounds()
        {
            int       count     = 5;
            VariantId variantId = new VariantId(count);

            // Add upto capacity
            for (int i = 0; i < count; ++i)
            {
                variantId.AddIdElement("element" + i);
            }

            Exception exceptionEncountered = null;

            try
            {
                variantId.AddIdElement("outofboundElement");
            }
            catch (Exception exp)
            {
                exceptionEncountered = exp;
            }

            Assert.IsTrue(
                exceptionEncountered != null && exceptionEncountered.GetType() == typeof(InvalidOperationException),
                "An exception is expected when we add elements beyond capacity");
        }