From 96f7366e9aefe308fc9222e0af15683f93fb97c4 Mon Sep 17 00:00:00 2001 From: artemp Date: Tue, 8 Dec 2015 11:58:10 +0000 Subject: [PATCH] expressions unit test - add logical expr --- test/unit/core/expresssions_test.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/test/unit/core/expresssions_test.cpp b/test/unit/core/expresssions_test.cpp index cc40a7662..ad0587b3d 100644 --- a/test/unit/core/expresssions_test.cpp +++ b/test/unit/core/expresssions_test.cpp @@ -43,10 +43,16 @@ TEST_CASE("expressions") { using properties_type = std::vector > ; mapnik::transcoder tr("utf8"); - auto expr = mapnik::parse_expression("[foo]='bar'"); - properties_type prop = {{ "foo", tr.transcode("bar") }}; + + properties_type prop = {{ "foo" , tr.transcode("bar") }, + { "double", mapnik::value_double(1.23456)}, + { "int" , mapnik::value_integer(123)}, + { "bool" , mapnik::value_bool(true)}, + { "null" , mapnik::value_null()}}; auto feature = make_test_feature(1, "POINT(100 200)", prop); + + auto expr = mapnik::parse_expression("[foo]='bar'"); REQUIRE(evaluate(*feature, *expr) == true); // primary expressions @@ -135,4 +141,7 @@ TEST_CASE("expressions") expr2 = mapnik::parse_expression("(2.0 * 2.0 + 3.0 * 3.0)/((2.0 - 3.0) * (2.0 + 3.0))"); REQUIRE(evaluate(*feature, *expr).to_double() == evaluate(*feature, *expr2).to_double()); + // logical + expr = mapnik::parse_expression("[int] = 123 and [double] = 1.23456 && [bool] = true and [null] = null && [foo] = 'bar'"); + REQUIRE(evaluate(*feature, *expr) == true); }