public void DefaultValues()
        {
            var sut = new LabelledStatement();

            Assert.AreEqual("", sut.Label);
            Assert.AreEqual(new UnknownStatement(), sut.Statement);
            Assert.AreNotEqual(0, sut.GetHashCode());
            Assert.AreNotEqual(1, sut.GetHashCode());
        }
        public void Equality_Default()
        {
            var a = new LabelledStatement();
            var b = new LabelledStatement();

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_DifferentStatement()
        {
            var a = new LabelledStatement {
                Statement = new ContinueStatement()
            };
            var b = new LabelledStatement {
                Statement = new BreakStatement()
            };

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_DifferentLabel()
        {
            var a = new LabelledStatement {
                Label = "a"
            };
            var b = new LabelledStatement {
                Label = "b"
            };

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_ReallyTheSame()
        {
            var a = new LabelledStatement {
                Label = "a", Statement = new BreakStatement()
            };
            var b = new LabelledStatement {
                Label = "a", Statement = new BreakStatement()
            };

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }