public void TestVisit()
        {
            // test without aggregation nodes
            ExprNodeIdentifierVisitor visitor = new ExprNodeIdentifierVisitor(false);

            exprNode.Accept(visitor);

            Assert.AreEqual(2, visitor.ExprProperties.Count);
            Assert.AreEqual(0, (Object)visitor.ExprProperties[0].First);
            Assert.AreEqual("IntBoxed", (Object)visitor.ExprProperties[0].Second);
            Assert.AreEqual(0, (Object)visitor.ExprProperties[1].First);
            Assert.AreEqual("IntPrimitive", (Object)visitor.ExprProperties[1].Second);

            // test with aggregation nodes, such as "IntBoxed * sum(IntPrimitive)"
            exprNode = SupportExprNodeFactory.MakeSumAndFactorNode();
            visitor  = new ExprNodeIdentifierVisitor(true);
            exprNode.Accept(visitor);
            Assert.AreEqual(2, visitor.ExprProperties.Count);
            Assert.AreEqual("IntBoxed", (Object)visitor.ExprProperties[0].Second);
            Assert.AreEqual("IntPrimitive", (Object)visitor.ExprProperties[1].Second);

            visitor = new ExprNodeIdentifierVisitor(false);
            exprNode.Accept(visitor);
            Assert.AreEqual(1, visitor.ExprProperties.Count);
            Assert.AreEqual("IntBoxed", (Object)visitor.ExprProperties[0].Second);
        }