예제 #1
0
        public void Equality_Default()
        {
            var a = new TypeCheckExpression();
            var b = new TypeCheckExpression();

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
예제 #2
0
        public void DefaultValues()
        {
            var sut = new TypeCheckExpression();

            Assert.AreEqual(new VariableReference(), sut.Reference);
            Assert.AreEqual(Names.UnknownType, sut.Type);
            Assert.AreNotEqual(0, sut.GetHashCode());
            Assert.AreNotEqual(1, sut.GetHashCode());
        }
        public void TypeCheckExpression()
        {
            var sst = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = VarRef("i")
            };

            AssertPrint(sst, "i is int");
        }
예제 #4
0
        public void SettingValues()
        {
            var sut = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = SomeVarRef()
            };

            Assert.AreEqual(Names.Type("p:int"), sut.Type);
            Assert.AreEqual(SomeVarRef(), sut.Reference);
        }
예제 #5
0
        public void Equality_DifferentVarRef()
        {
            var a = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = SomeVarRef("i")
            };

            var b = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = SomeVarRef("j")
            };

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
예제 #6
0
        public void Equality_ReallyTheSame()
        {
            var a = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = SomeVarRef()
            };

            var b = new TypeCheckExpression
            {
                Type      = Names.Type("p:int"),
                Reference = SomeVarRef()
            };

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
예제 #7
0
        public void VisitorWithReturnIsImplemented()
        {
            var sut = new TypeCheckExpression();

            sut.Accept(23).VerifyWithReturn(v => v.Visit(sut, 23));
        }