From aeec628946c46836b235a1660310c99e21e690a2 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Tue, 8 Dec 2020 16:53:21 +0100
Subject: [PATCH] Tests for queries with date objects and the >= and <=
 operators

---
 tests/test_datetime.py | 509 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 509 insertions(+)

diff --git a/tests/test_datetime.py b/tests/test_datetime.py
index 815db51..f37782e 100644
--- a/tests/test_datetime.py
+++ b/tests/test_datetime.py
@@ -1418,3 +1418,512 @@ def test_greater_operator():
             h.execute_query("FIND Simple*").delete()
         except BaseException:
             pass
+
+
+def test_greater_equal_operator():
+    try:
+        rec = set_up_rec()
+        # query with > Date YYYY-MM-ddThh:mm:ss
+        d = "2015-05-05T20:15:30"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+
+        # Date YYYY-MM-ddThh:mm:ss.ns
+        d = "2015-05-05T20:15:30.123"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.122"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:29"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:15:31"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:14"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T20:16"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T19"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-05T21"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+
+        # Date YYYY-MM-dd
+        d = "2015-05-05"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-05-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-04"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+        # Date YYYY-MM
+        d = "2015-05"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06-05"))
+        assert_false(query_assertion(rec, d, ">=", "2015-06"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-04"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+        # Date YYYY
+        d = "2015"
+        assert_true(query_assertion(rec, d, ">=", d))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015-05"))
+        assert_true(query_assertion(rec, d, ">=", "2015"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20:15"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05T20"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016-05"))
+        assert_false(query_assertion(rec, d, ">=", "2016"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20:15"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05T20"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014-05"))
+        assert_true(query_assertion(rec, d, ">=", "2014"))
+
+    finally:
+        try:
+            h.execute_query("FIND Simple*").delete()
+        except BaseException:
+            pass
+
+
+def test_smaller_equal_operator():
+    try:
+        rec = set_up_rec()
+
+        # Date YYYY-MM-ddThh:mm:ss
+        d = "2015-05-05T20:15:30"
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.124"))
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM-ddThh:mm:ss.ns
+        d = "2015-05-05T20:15:30.123"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.122"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.124"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:15:29"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:31"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T20:14"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:16"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-05T19"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T21"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM-dd
+        d = "2015-05-05"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-05-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-06"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY-MM
+        d = "2015-05"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04-05"))
+        assert_false(query_assertion(rec, d, "<=", "2015-04"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-06"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+        # Date YYYY
+        d = "2015"
+        assert_true(query_assertion(rec, d, "<=", d))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015-05"))
+        assert_true(query_assertion(rec, d, "<=", "2015"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30.123"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15:30"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20:15"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05T20"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014-05"))
+        assert_false(query_assertion(rec, d, "<=", "2014"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30.123"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15:30"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20:15"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05T20"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016-05"))
+        assert_true(query_assertion(rec, d, "<=", "2016"))
+
+    finally:
+        try:
+            h.execute_query("FIND Simple*").delete()
+        except BaseException:
+            pass
+
+
-- 
GitLab