TEST_F(XPathAcceptanceTest, variables)
{
    XPath xpath = compile("$variable");

    xpath.bind_variable("variable", 5.2);
    ASSERT_DOUBLE_EQ(5.2, xpath.number());
}
TEST_F(XPathAcceptanceTest, invalid_function_throws_exception)
{
    XPath xpath = compile("bogus()");
    ASSERT_THROW(xpath.number(), UnknownXPathFunctionException);
}
TEST_F(XPathAcceptanceTest, multiplicitive_math_operations)
{
    XPath xpath = compile("5 mod 2 div 3 * 2");

    ASSERT_DOUBLE_EQ(2/3.0, xpath.number());
}
TEST_F(XPathAcceptanceTest, unary_negation)
{
    XPath xpath = compile("2 - -2");

    ASSERT_DOUBLE_EQ(4.0, xpath.number());
}
TEST_F(XPathAcceptanceTest, additive_math_operations)
{
    XPath xpath = compile("1 - 2 + 3");

    ASSERT_DOUBLE_EQ(2.0, xpath.number());
}