Example #1
0
        GenerateIdentitiesSample()
        {
            var sample   = new QualifiedElement();
            var expected = new[]
            {
                new IdentityElement(sample, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge"),
                new IdentityElement(sample, ScopeCategories.Public, IdentityCategories.Namespace, "Piyo")
            };

            yield return(sample, expected);

            var storage = new PhysicalStorage(PathA);
            var ns      = new NameSpaceElement(storage);

            sample   = new QualifiedElement(ns);
            expected = new[] { new IdentityElement(sample, "Foo"), new IdentityElement(sample, "Bar") };

            yield return(sample, expected);


            ns       = new NameSpaceElement(ns);
            sample   = new QualifiedElement(ns);
            expected = new[] { new IdentityElement(sample, "System"), new IdentityElement(sample, "Collections") };

            yield return(sample, expected);
        }
        public bool IsEquivalentTo(IQualified other, int order)
        {
            if (order <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(order));
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }


            if (Identities.Count < order || other.Identities.Count < order)
            {
                return(false);
            }

            for (int i = 0; i < order; i++)
            {
                if (!Identities[i].IsEquivalentTo(other.Identities[i]))
                {
                    return(false);
                }
            }

            return(true);
        }
Example #3
0
        protected override IEnumerable <(IQualified x, IQualified y, IQualified z)> GenerateEquivalentSample()
        {
            var x = new QualifiedElement();
            var y = new QualifiedElement();
            var z = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Namespace, "Foo");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Namespace, "Foo");
            _ = new IdentityElement(z, ScopeCategories.Public, IdentityCategories.Namespace, "Foo");

            yield return(x, y, z);

            x = new QualifiedElement(new NameSpaceElement(new PhysicalStorage(PathA)));
            y = new QualifiedElement(new NameSpaceElement(new PhysicalStorage(PathB)));
            z = new QualifiedElement(new NameSpaceElement(new PhysicalStorage(PathA)));

            _ = new IdentityElement(x, "Hoge");
            _ = new IdentityElement(y, "Hoge");
            _ = new IdentityElement(z, "Hoge");

            yield return(x, y, z);

            _ = new IdentityElement(x, "Piyo");
            _ = new IdentityElement(y, "Piyo");
            _ = new IdentityElement(z, "Piyo");

            yield return(x, y, z);
        }
Example #4
0
 public static IQualified <Id, Term <Id> > TypeOf <Id, T>(this IQualified <Id, T> expression)
 {
     return(new Qualified <Id, Term <Id> >(
                universe: new Term <Id> .Universe(expression.Universe.Rank + 1),
                type: expression.Universe,
                term: expression.Type));
 }
Example #5
0
 static void areEquivalent(IIdentity actual, IdentityCategories expectedCategory, string expectedName,
                           IQualified expectedQualified, int expectedOrder)
 {
     actual.Category.Is(expectedCategory);
     actual.Name.Is(expectedName);
     actual.From.IsSameReferenceAs(expectedQualified);
     actual.Order.Is(expectedOrder);
 }
Example #6
0
        protected override void AreEqual(IQualified actual, IQualified expected)
        {
            actual.Identities.Count.Is(expected.Identities.Count);

            for (int i = 0; i < expected.Identities.Count; i++)
            {
                actual.Identities[i].Category.Is(expected.Identities[i].Category);
                actual.Identities[i].Name.Is(expected.Identities[i].Name);
            }
        }
        protected override void AreEqual(IQualified actual, IQualified expected)
        {
            actual.Identities.Count.Is(expected.Identities.Count);

            for (int i = 0; i < expected.Identities.Count; i++)
            {
                var a = actual.Identities[i];
                var e = actual.Identities[i];

                a.Category.Is(e.Category);
                a.Name.Is(e.Name);
                a.Order.Is(e.Order);
            }
        }
        public bool IsEquivalentTo(IQualified other)
        {
            if (ReferenceEquals(this, other))
            {
                return(true);
            }
            if (Identities.Count != other.Identities.Count)
            {
                return(false);
            }

            for (int i = 0; i < Identities.Count; i++)
            {
                if (!Identities[i].IsEquivalentTo(other.Identities[i]))
                {
                    return(false);
                }
            }

            return(true);
        }
Example #9
0
        protected override IEnumerable <(IQualified x, IQualified y)> GenerateInEquivalentSample()
        {
            var x = new QualifiedElement();
            var y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Class, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Delegate, "Hoge");
            yield return(x, y);

            x = new QualifiedElement();
            y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Namespace, "hoge");
            yield return(x, y);

            x = new QualifiedElement();
            y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Class, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Internal, IdentityCategories.Class, "Hoge");
            yield return(x, y);
        }
 protected override void AreEqual(IQualified actual, IQualified expected) =>
 actual.IsEquivalentTo(expected).IsTrue();
Example #11
0
 public string ToString(IQualified <Id, Term <Id> > expression)
 {
     return(ToString(expression.Term));
 }
Example #12
0
 protected override void AreEqual(IQualified actual, IQualified expected) =>
 ReferenceEquals(actual, expected).IsTrue();
Example #13
0
 public Destructor(IQualified <Id, Term <Id> > focus, Continuation <Id> continuation)
     : base(Productions.Destructor)
 {
     Focus        = focus;
     Continuation = continuation;
 }
Example #14
0
 public Pair(IQualified <Id, Id> dependency, Term <Id> dependent)
     : base(Tags.Pair)
 {
     Dependency = dependency;
     Dependent  = dependent;
 }