public void TestElementType()
        {
            ElementType elementType = ElementType.Node_a;

            elementType = elementType.AddType(ElementType.Constant_a);
            Assert.AreEqual(ElementType.ConstantNode_c, elementType);
            Assert.IsTrue(elementType.IsType(ElementType.Constant_a));
            Assert.IsTrue(elementType.HasAnyType(ElementType.AnyElementMask_c));
            elementType = elementType.RemoveType(ElementType.Constant_a);
            Assert.IsFalse(elementType.IsType(ElementType.Constant_a));
            Assert.IsTrue(elementType.IsType(ElementType.Node_a));
            Assert.IsTrue(ElementType.PositiveArc_a.HasAnyType(ElementType.PositiveConstantPermanentAccessArc_c));
            Assert.IsTrue(ElementType.ConstantNode_c.IsType(ElementType.Node_a));
            Assert.IsFalse(ElementType.PositiveArc_a.IsType(ElementType.NegativeArc_a));
        }