From d8b256203c01eaa8ce7b54e296ff33bd1afaf583 Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine" Date: Mon, 31 May 2010 12:00:38 +0000 Subject: tests: Added more XPath tests based on recommendation errata git-svn-id: http://pugixml.googlecode.com/svn/trunk@483 99668b35-9821-0410-8761-19e4c4f06640 --- tests/test_xpath_functions.cpp | 11 ++++++++++- tests/test_xpath_operators.cpp | 31 ++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index 06b9e79..7b44294 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -81,6 +81,14 @@ TEST(xpath_number_floor) // floor with 2 arguments CHECK_XPATH_FAIL(STR("floor(1, 2)")); + + // floor with argument 0 should return 0 + CHECK_XPATH_STRING(c, STR("string(1 div floor(0))"), STR("Infinity")); + + // floor with argument -0 should return -0 +#if !(defined(__APPLE__) && defined(__MACH__)) // MacOS X gcc 4.0.1 implements floor incorrectly (floor never returns -0) + CHECK_XPATH_STRING(c, STR("string(1 div floor(-0))"), STR("-Infinity")); +#endif } TEST(xpath_number_ceiling) @@ -102,9 +110,10 @@ TEST(xpath_number_ceiling) // ceiling with 2 arguments CHECK_XPATH_FAIL(STR("ceiling(1, 2)")); - // ceiling with argument in range (-1, -0] should result in minus zero + // ceiling with argument 0 should return 0 CHECK_XPATH_STRING(c, STR("string(1 div ceiling(0))"), STR("Infinity")); + // ceiling with argument in range (-1, -0] should result in minus zero #if !(defined(__APPLE__) && defined(__MACH__)) // MacOS X gcc 4.0.1 implements ceil incorrectly (ceil never returns -0) CHECK_XPATH_STRING(c, STR("string(1 div ceiling(-0))"), STR("-Infinity")); CHECK_XPATH_STRING(c, STR("string(1 div ceiling(-0.1))"), STR("-Infinity")); diff --git a/tests/test_xpath_operators.cpp b/tests/test_xpath_operators.cpp index 5c7c0e9..b834b95 100644 --- a/tests/test_xpath_operators.cpp +++ b/tests/test_xpath_operators.cpp @@ -2,10 +2,9 @@ #include "common.hpp" -TEST_XML(xpath_operators_arithmetic, "1023") +TEST(xpath_operators_arithmetic) { xml_node c; - xml_node n = doc.child(STR("node")); // incorrect unary operator CHECK_XPATH_FAIL(STR("-")); @@ -43,6 +42,17 @@ TEST_XML(xpath_operators_arithmetic, "1021021023") +{ + xml_node n = doc.child(STR("node")); // correct subtraction parsing, from W3C standard CHECK_XPATH_NUMBER(n, STR("foo-bar"), 10); -- cgit v1.2.3