diff options
| author | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-05-29 12:59:26 +0000 |
|---|---|---|
| committer | arseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640> | 2010-05-29 12:59:26 +0000 |
| commit | 64fc9478af7e83fbf0671d34ed29ed455a279082 (patch) | |
| tree | 227fecd8a2e72cb864219743f600d1d4cdb512db /tests/test_xpath_functions.cpp | |
| parent | c3f4423e98f6fa506dfd163c2b53a1404476e93f (diff) | |
tests: Added more ceiling/round tests, added first batch of Xalan tests
git-svn-id: http://pugixml.googlecode.com/svn/trunk@460 99668b35-9821-0410-8761-19e4c4f06640
Diffstat (limited to 'tests/test_xpath_functions.cpp')
| -rw-r--r-- | tests/test_xpath_functions.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/test_xpath_functions.cpp b/tests/test_xpath_functions.cpp index 6713a89..5fc61fc 100644 --- a/tests/test_xpath_functions.cpp +++ b/tests/test_xpath_functions.cpp @@ -71,6 +71,7 @@ TEST(xpath_number_floor) CHECK_XPATH_FAIL(STR("floor()"));
// floor with 1 argument
+ CHECK_XPATH_NUMBER(c, STR("floor(0)"), 0);
CHECK_XPATH_NUMBER(c, STR("floor(1.2)"), 1);
CHECK_XPATH_NUMBER(c, STR("floor(1)"), 1);
CHECK_XPATH_NUMBER(c, STR("floor(-1.2)"), -2);
@@ -90,6 +91,7 @@ TEST(xpath_number_ceiling) CHECK_XPATH_FAIL(STR("ceiling()"));
// ceiling with 1 argument
+ CHECK_XPATH_NUMBER(c, STR("ceiling(0)"), 0);
CHECK_XPATH_NUMBER(c, STR("ceiling(1.2)"), 2);
CHECK_XPATH_NUMBER(c, STR("ceiling(1)"), 1);
CHECK_XPATH_NUMBER(c, STR("ceiling(-1.2)"), -1);
@@ -99,6 +101,11 @@ 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
+ CHECK_XPATH_STRING(c, STR("string(1 div ceiling(0))"), STR("Infinity"));
+ 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"));
}
TEST(xpath_number_round)
@@ -122,6 +129,15 @@ TEST(xpath_number_round) // round with 2 arguments
CHECK_XPATH_FAIL(STR("round(1, 2)"));
+
+ // round with argument in range [-0.5, -0] should result in minus zero
+ CHECK_XPATH_STRING(c, STR("string(1 div round(0))"), STR("Infinity"));
+
+#if 0 // $$$ commented out temporarily because round is not compliant yet
+ CHECK_XPATH_STRING(c, STR("string(1 div round(-0.5))"), STR("-Infinity"));
+ CHECK_XPATH_STRING(c, STR("string(1 div round(-0))"), STR("-Infinity"));
+ CHECK_XPATH_STRING(c, STR("string(1 div round(-0.1))"), STR("-Infinity"));
+#endif
}
TEST_XML(xpath_boolean_boolean, "<node />")
@@ -239,7 +255,9 @@ TEST_XML(xpath_string_string, "<node>123<child id='1'>789</child><child><