public void EnumEquality3()
        {
            NativeEnum e1 = new NativeEnum("e");
            NativeEnum e2 = new NativeEnum("e");

            e1.Values.Add(new NativeEnumValue("e", "v1"));
            e2.Values.Add(new NativeEnumValue("e", "v2"));

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.False(eq.Equals1(e1, e2));
        }
        public void TopLevel3()
        {
            NativeBitVector m1 = new NativeBitVector(5);
            NativeBitVector m2 = new NativeBitVector(5);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(m1, m2));

            m2 = new NativeBitVector(6);
            Assert.False(eq.Equals1(m1, m2));
        }
        public void TopLevel1()
        {
            NativeBuiltinType nt1 = new NativeBuiltinType(BuiltinType.NativeByte);
            NativeBuiltinType nt2 = new NativeBuiltinType(BuiltinType.NativeByte);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(nt1, nt2));

            nt2 = new NativeBuiltinType(BuiltinType.NativeInt32);
            Assert.False(eq.Equals1(nt1, nt2));
        }
        public void EnumEquality2()
        {
            NativeEnum e1 = new NativeEnum("e");
            NativeEnum e2 = new NativeEnum("e");

            e1.AddValue("v1", "foo");
            e2.AddValue("v1", "");

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.False(eq.Equals1(e1, e2));
        }
        public void TopLevel13()
        {
            NativeStruct left = new NativeStruct("s");

            left.Members.Add(new NativeMember("m1", new NativeNamedType("foo")));

            NativeStruct right = new NativeStruct("s");

            right.Members.Add(new NativeMember("m1", new NativeStruct("foo")));

            Assert.True(NativeTypeEqualityComparer.AreEqualTopLevel(left, right));
        }
        public void IgnoreNamedTypes()
        {
            NativeEnum      e1 = new NativeEnum("e");
            NativeEnum      e2 = new NativeEnum("e");
            NativeNamedType n2 = new NativeNamedType("e", e2);

            e1.Values.Add(new NativeEnumValue("e", "v1"));
            e2.Values.Add(new NativeEnumValue("e", "v1"));

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(e1, n2));
        }
        public void TopLevel4()
        {
            NativeBitVector m1 = new NativeBitVector(5);
            NativeBitVector m2 = new NativeBitVector(5);
            NativePointer   p1 = new NativePointer(m1);
            NativePointer   p2 = new NativePointer(m2);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(p1, p2));

            p2.RealType = new NativeBitVector(6);
            Assert.False(eq.Equals1(p1, p2));
        }
        public void TopLevel8()
        {
            NativeStruct nd1 = new NativeStruct("s");
            NativeStruct nd2 = new NativeStruct("s");

            nd1.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));
            nd2.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(nd1, nd2));

            nd1.Members.Clear();
            Assert.False(eq.Equals1(nd1, nd2));
        }
Пример #9
0
        public void SaveAndLoad4()
        {
            NativeTypeDef t1 = new NativeTypeDef("t1");

            t1.RealType = new NativeBuiltinType(BuiltinType.NativeByte);

            var ns = new BasicSymbolStorage();

            ns.AddTypeDef(t1);

            NativeType rett1 = null;

            Assert.True(ns.TryGetType(t1.Name, out rett1));
            Assert.True(NativeTypeEqualityComparer.AreEqualRecursive(rett1, t1));
        }
Пример #10
0
        public void SaveAndLoad3()
        {
            NativeStruct s1 = new NativeStruct("s1");

            s1.Members.Add(new NativeMember("m1", new NativeNamedType("foo")));

            var ns = new BasicSymbolStorage();

            ns.AddDefinedType(s1);

            NativeType rets1 = null;

            Assert.True(ns.TryGetType(s1.Name, out rets1));
            Assert.True(NativeTypeEqualityComparer.AreEqualTopLevel(s1, rets1));
        }
        public void TopLevel5()
        {
            NativeBitVector m1 = new NativeBitVector(5);
            NativeBitVector m2 = new NativeBitVector(5);
            NativeArray     p1 = new NativeArray(m1, 2);
            NativeArray     p2 = new NativeArray(m2, 2);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(p1, p2));

            p2.ElementCount = 3;
            Assert.False(eq.Equals1(p1, p2));

            p2.RealType = new NativeBitVector(6);
            Assert.False(eq.Equals1(p1, p2));
        }
        public void TopLevel6()
        {
            NativeBitVector m1 = new NativeBitVector(5);
            NativeBitVector m2 = new NativeBitVector(5);
            NativeTypeDef   p1 = new NativeTypeDef("foo", m1);
            NativeTypeDef   p2 = new NativeTypeDef("foo", m2);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(p1, p2));

            p2.Name = "bar";
            Assert.False(eq.Equals1(p1, p2));

            p2.Name     = p1.Name;
            p2.RealType = new NativeBitVector(6);
            Assert.False(eq.Equals1(p1, p2));
        }
        public void Anonymous1()
        {
            NativeStruct nd1 = new NativeStruct("ndaaoeu");
            NativeStruct nd2 = new NativeStruct("a");

            nd1.IsAnonymous = true;
            nd2.IsAnonymous = true;

            nd1.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));
            nd2.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));

            nd1.Members.Add(new NativeMember("m2", new NativeBuiltinType(BuiltinType.NativeBoolean)));
            nd2.Members.Add(new NativeMember("m2", new NativeBuiltinType(BuiltinType.NativeBoolean)));

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(nd1, nd2));
        }
        public void TopLevel7()
        {
            NativeBitVector m1 = new NativeBitVector(5);
            NativeBitVector m2 = new NativeBitVector(5);
            NativeNamedType p1 = new NativeNamedType("foo", m1);
            NativeNamedType p2 = new NativeNamedType("foo", m2);

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.TopLevel;

            Assert.True(eq.Equals1(p1, p2));

            // We just dig right through named types unless they don't have an underlying
            // real type
            p2.Name = "bar";
            Assert.True(eq.Equals1(p1, p2));

            p2.Name     = p1.Name;
            p2.RealType = new NativeBitVector(6);
            Assert.False(eq.Equals1(p1, p2));
        }
        public void Recursive2()
        {
            NativeStruct sub1 = new NativeStruct("sub");
            NativeStruct sub2 = new NativeStruct("sub");

            sub1.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));
            sub2.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeChar)));

            NativeStruct nd1 = new NativeStruct("n");
            NativeStruct nd2 = new NativeStruct("n");

            nd1.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));
            nd2.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeBoolean)));

            nd1.Members.Add(new NativeMember("m2", sub1));
            nd2.Members.Add(new NativeMember("m2", sub2));

            NativeTypeEqualityComparer eq = NativeTypeEqualityComparer.Recursive;

            Assert.False(eq.Equals1(nd1, nd2));
        }
Пример #16
0
        public void SaveAndLoad1()
        {
            NativeStruct s1 = new NativeStruct("s1");

            s1.Members.Add(new NativeMember("m1", new NativeBuiltinType(BuiltinType.NativeFloat)));

            NativeStruct s2 = new NativeStruct("s2");

            s2.Members.Add(new NativeMember("m1", s1));

            var ns = new BasicSymbolStorage();

            ns.AddDefinedType(s2);

            NativeDefinedType rets2 = null;

            Assert.True(ns.TryGetGlobalSymbol(s2.Name, out rets2));
            Assert.NotNull(rets2);
            Assert.True(NativeTypeEqualityComparer.AreEqualRecursive(s2, rets2));
            Assert.True(NativeTypeEqualityComparer.AreEqualTopLevel(s2, rets2));
        }