public void EqualityComplexTypeTest()
        {
            var simpleBaselineComplexType = new EdmComplexType("NS", "Baseline");
            var simpleMatchComplexType = new EdmComplexType("NS", "Baseline");
            var simpleDifferentNameComplexType = new EdmComplexType("NS", "Different");
            var simpleDifferentNamespaceComplexType = new EdmComplexType("Foo", "Base");

            this.VerifyThrowsException(typeof(ArgumentNullException), () => new EdmComplexType(null, "Baseline"));
            this.VerifyThrowsException(typeof(ArgumentNullException), () => new EdmComplexType("NS", null));
            Assert.IsTrue(simpleBaselineComplexType.IsEquivalentTo(simpleBaselineComplexType), "Is the same.");
            Assert.IsFalse(simpleBaselineComplexType.IsEquivalentTo(simpleMatchComplexType), "Is the same, but different obj refs.");
            Assert.IsFalse(simpleBaselineComplexType.IsEquivalentTo(simpleDifferentNameComplexType), "Different name simple complex type.");
            Assert.IsFalse(simpleBaselineComplexType.IsEquivalentTo(simpleDifferentNamespaceComplexType), "Different namespace for simple complex type.");

            var baselineBaseComplexType = new EdmComplexType("NS", "Base");
            var fooBaseComplexType = new EdmComplexType("NS", "Foo");

            var baselineComplexType = new EdmComplexType("NS", "Baseline", baselineBaseComplexType, false);
            var matchComplexType = new EdmComplexType("NS", "Baseline", baselineBaseComplexType, false);
            var differentBaseComplexType = new EdmComplexType("NS", "Baseline", fooBaseComplexType, false);
            var nullBaseTypeComplexType = new EdmComplexType("NS", "Baseline", null, false);
            var differentAbstractComplexType = new EdmComplexType("NS", "Baseline", baselineBaseComplexType, true);

            Assert.IsTrue(baselineComplexType.IsEquivalentTo(baselineComplexType), "Is the same.");
            Assert.IsFalse(baselineComplexType.IsEquivalentTo(matchComplexType), "Is the same, but different obj refs.");
            Assert.IsFalse(baselineComplexType.IsEquivalentTo(differentBaseComplexType), "Different base type.");
            Assert.IsFalse(baselineComplexType.IsEquivalentTo(nullBaseTypeComplexType), "Null base type.");
            Assert.IsFalse(baselineComplexType.IsEquivalentTo(differentAbstractComplexType), "Different abstract type.");
        }