# encoding: utf-8 # # ** header v3.0 # This file is a part of the CaosDB Project. # # Copyright (C) 2018 Research Group Biomedical Physics, # Max-Planck-Institute for Dynamics and Self-Organization Göttingen # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # # ** end header # """Created on 27.10.2015. @author: tf """ from nose.tools import assert_true, assert_false # @UnresolvedImport import caosdb as h ''' some helpful functions ''' old_stored = None def update_rec(rec, datetime): global old_stored if old_stored == datetime: return rec.get_property("SimpleDateProperty").value = datetime rec.update() old_stored = datetime def store(rec, datetime): update_rec(rec, datetime) assert_true(rec.is_valid()) return h.Record(id=rec.id).retrieve().get_property( "SimpleDateProperty").value def set_up_rec(): global old_stored old_stored = None p = h.Property(name="SimpleDateProperty", datatype="DATETIME").insert() assert_true(p.is_valid()) rt = h.RecordType( name="SimpleRecordType").add_property( p, importance="OBLIGATORY").insert() assert_true(rt.is_valid()) rec = h.Record(name="SimpleRecord").add_parent(rt).add_property(p).insert() assert_true(rec.is_valid()) return rec def query_assertion(rec, stored, op, queried): update_rec(rec, stored) assert_true(rec.is_valid()) q = h.execute_query( "FIND RECORD SimpleRecord WHICH HAS A SimpleDateProperty" + op + queried) return len(q) == 1 ''' the actual tests ''' def test_utcdatetime_storage(): try: rec = set_up_rec() utcs = [ "2015-12-24T20:15:30", "2015-12-24T20:15:30.123", "-9999-01-01T00:00:00", "-9999-01-01T00:00:00.0", "9999-12-31T23:59:59", "9999-12-31T23:59:59.999999999", "0001-01-01T00:00:00", "0001-01-01T00:00:00.0", "-0001-12-31T23:59:59", "-0001-12-31T23:59:59.999999"] for d in utcs: assert_true(d in store(rec, d)) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_date_storage(): try: rec = set_up_rec() dates = [ "2015-12-24", "2015", "2015-12", "9999-12-31", "9999-12", "9999", "-9999-01-01", "-9999-01", "-9999", "0001-01-01", "0001-01", "0001", "-0001-12-31", "-0001-12", "-0001"] for d in dates: print(d) assert_true(d in store(rec, d)) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_in_operator(): try: rec = set_up_rec() # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_true(query_assertion(rec, d, " IN ", d)) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20:15:30")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20:15")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05")) assert_true(query_assertion(rec, d, " IN ", "2015-05")) assert_true(query_assertion(rec, d, " IN ", "2015")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:15:30.124")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:15:31.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:15:31")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:16:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:16:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:16")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T21:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21")) assert_false( query_assertion( rec, d, " IN ", "2015-05-04T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04")) assert_false( query_assertion( rec, d, " IN ", "2015-04-05T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05")) assert_false(query_assertion(rec, d, " IN ", "2015-04")) assert_false( query_assertion( rec, d, " IN ", "2014-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20:15")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05")) assert_false(query_assertion(rec, d, " IN ", "2014-05")) assert_false(query_assertion(rec, d, " IN ", "2014")) # Date YYYY-MM-ddThh:mm:ss.ns d = "2015-05-05T20:15:30.123" assert_true(query_assertion(rec, d, " IN ", d)) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20:15:30")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20:15")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05T20")) assert_true(query_assertion(rec, d, " IN ", "2015-05-05")) assert_true(query_assertion(rec, d, " IN ", "2015-05")) assert_true(query_assertion(rec, d, " IN ", "2015")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:15:30.124")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:15:31.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:15:31")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T20:16:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:16:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T20:16")) assert_false( query_assertion( rec, d, " IN ", "2015-05-05T21:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-05T21")) assert_false( query_assertion( rec, d, " IN ", "2015-05-04T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04T20")) assert_false(query_assertion(rec, d, " IN ", "2015-05-04")) assert_false( query_assertion( rec, d, " IN ", "2015-04-05T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05T20")) assert_false(query_assertion(rec, d, " IN ", "2015-04-05")) assert_false(query_assertion(rec, d, " IN ", "2015-04")) assert_false( query_assertion( rec, d, " IN ", "2014-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20:15")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05T20")) assert_false(query_assertion(rec, d, " IN ", "2014-05-05")) assert_false(query_assertion(rec, d, " IN ", "2014-05")) assert_false(query_assertion(rec, d, " IN ", "2014")) # Date YYYY-MM-dd d = "2015-01-01" assert_true(query_assertion(rec, d, " IN ", d)) assert_false( query_assertion( rec, d, " IN ", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-01-01T20")) assert_true(query_assertion(rec, d, " IN ", "2015-01-01")) assert_true(query_assertion(rec, d, " IN ", "2015-01")) assert_true(query_assertion(rec, d, " IN ", "2015")) assert_false( query_assertion( rec, d, " IN ", "2015-02-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-02-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-02-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-02-01T20")) assert_false(query_assertion(rec, d, " IN ", "2015-02-01")) assert_false(query_assertion(rec, d, " IN ", "2015-02")) assert_false( query_assertion( rec, d, " IN ", "2016-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2016-01-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2016-01-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2016-01-01T20")) assert_false(query_assertion(rec, d, " IN ", "2016-01-01")) assert_false(query_assertion(rec, d, " IN ", "2016-01")) assert_false(query_assertion(rec, d, " IN ", "2016")) assert_false( query_assertion( rec, d, " IN ", "2014-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2014-01-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2014-01-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2014-01-01T20")) assert_false(query_assertion(rec, d, " IN ", "2014-01-01")) assert_false(query_assertion(rec, d, " IN ", "2014-01")) assert_false(query_assertion(rec, d, " IN ", "2014")) # Date YYYY-MM d = "2015-05" assert_true(query_assertion(rec, d, " IN ", d)) assert_false( query_assertion( rec, d, " IN ", "2015-05-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01")) assert_true(query_assertion(rec, d, " IN ", "2015")) assert_false( query_assertion( rec, d, " IN ", "2015-06-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-06-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-06-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-06-01T20")) assert_false(query_assertion(rec, d, " IN ", "2015-06-01")) assert_false(query_assertion(rec, d, " IN ", "2015-06")) assert_false( query_assertion( rec, d, " IN ", "2015-04-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-04-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-04-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-04-01T20")) assert_false(query_assertion(rec, d, " IN ", "2015-04-01")) assert_false(query_assertion(rec, d, " IN ", "2015-04")) assert_false( query_assertion( rec, d, " IN ", "2016-05-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01")) assert_false(query_assertion(rec, d, " IN ", "2016-05")) assert_false(query_assertion(rec, d, " IN ", "2016")) # Date YYYY d = "2015" assert_true(query_assertion(rec, d, " IN ", d)) assert_false( query_assertion( rec, d, " IN ", "2015-05-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01T20")) assert_false(query_assertion(rec, d, " IN ", "2015-05-01")) assert_false(query_assertion(rec, d, " IN ", "2015-05")) assert_false( query_assertion( rec, d, " IN ", "2016-05-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01T20")) assert_false(query_assertion(rec, d, " IN ", "2016-05-01")) assert_false(query_assertion(rec, d, " IN ", "2016-05")) assert_false(query_assertion(rec, d, " IN ", "2016")) assert_false( query_assertion( rec, d, " IN ", "2014-05-01T20:15:30.123")) assert_false(query_assertion(rec, d, " IN ", "2014-05-01T20:15:30")) assert_false(query_assertion(rec, d, " IN ", "2014-05-01T20:15")) assert_false(query_assertion(rec, d, " IN ", "2014-05-01T20")) assert_false(query_assertion(rec, d, " IN ", "2014-05-01")) assert_false(query_assertion(rec, d, " IN ", "2014-05")) assert_false(query_assertion(rec, d, " IN ", "2014")) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_not_in_operator(): try: rec = set_up_rec() # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_false(query_assertion(rec, d, " NOT IN ", d)) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.123")) assert_false( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05T20")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.124")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:31.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15:31")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:16:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:16:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:16")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T21:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T21:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T21:15")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-06T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-06-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2016-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016")) # Date YYYY-MM-ddThh:mm:ss.ns d = "2015-05-05T20:15:30.123" assert_false(query_assertion(rec, d, " NOT IN ", d)) assert_false( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.123")) assert_false( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05T20")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.124")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:31.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15:31")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:16:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:16:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:16")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T21:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T21:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T21:15")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-06T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-06-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2016-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016")) # Date YYYY-MM-dd d = "2015-05-05" assert_false(query_assertion(rec, d, " NOT IN ", d)) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-06-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-04-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04")) assert_true( query_assertion( rec, d, " NOT IN ", "2016-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016")) assert_true( query_assertion( rec, d, " NOT IN ", "2014-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014")) # Date YYYY-MM d = "2015-05" assert_false(query_assertion(rec, d, " NOT IN ", d)) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-06-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-06")) assert_true( query_assertion( rec, d, " NOT IN ", "2015-04-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-04")) assert_true( query_assertion( rec, d, " NOT IN ", "2016-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016")) assert_true( query_assertion( rec, d, " NOT IN ", "2014-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014")) # Date YYYY d = "2015" assert_false(query_assertion(rec, d, " NOT IN ", d)) assert_true( query_assertion( rec, d, " NOT IN ", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2015-05")) assert_false(query_assertion(rec, d, " NOT IN ", "2015")) assert_true( query_assertion( rec, d, " NOT IN ", "2016-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2016")) assert_true( query_assertion( rec, d, " NOT IN ", "2014-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15:30")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20:15")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05T20")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014-05")) assert_true(query_assertion(rec, d, " NOT IN ", "2014")) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_eq_operator(): try: rec = set_up_rec() # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_true(query_assertion(rec, d, "=", d)) assert_false(query_assertion(rec, d, "=", "2015-05-05T20:15:30.123")) assert_true(query_assertion(rec, d, "=", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "=", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "=", "2015-05-05T20")) assert_false(query_assertion(rec, d, "=", "2015-05-05")) assert_false(query_assertion(rec, d, "=", "2015-05")) assert_false(query_assertion(rec, d, "=", "2015")) # 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_false(query_assertion(rec, d, "=", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "=", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "=", "2015-05-05T20")) assert_false(query_assertion(rec, d, "=", "2015-05-05")) assert_false(query_assertion(rec, d, "=", "2015-05")) assert_false(query_assertion(rec, d, "=", "2015")) # Date YYYY-MM-dd d = "2015-01-01" assert_true(query_assertion(rec, d, "=", d)) assert_false(query_assertion(rec, d, "=", "2015-01-02")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "=", "2015-01")) assert_false(query_assertion(rec, d, "=", "2015")) # Date YYYY-MM d = "2015-01" assert_true(query_assertion(rec, d, "=", d)) assert_false(query_assertion(rec, d, "=", "2015-02")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "=", "2015-01-01")) assert_false(query_assertion(rec, d, "=", "2015")) # Date YYYY d = "2015" assert_true(query_assertion(rec, d, "=", d)) assert_false(query_assertion(rec, d, "=", "2016")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "=", "2015-01-01")) assert_false(query_assertion(rec, d, "=", "2015-01")) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_neq_operator(): try: rec = set_up_rec() # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_false(query_assertion(rec, d, "!=", d)) assert_true(query_assertion(rec, d, "!=", "2015-05-05T20:15:31")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20")) assert_false(query_assertion(rec, d, "!=", "2015-05-05")) assert_false(query_assertion(rec, d, "!=", "2015-05")) assert_false(query_assertion(rec, d, "!=", "2015")) # Date YYYY-MM-ddThh:mm:ss.ns d = "2015-05-05T20:15:30.123" assert_false(query_assertion(rec, d, "!=", d)) assert_true(query_assertion(rec, d, "!=", "2015-05-05T20:15:30.124")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "!=", "2015-05-05T20")) assert_false(query_assertion(rec, d, "!=", "2015-05-05")) assert_false(query_assertion(rec, d, "!=", "2015-05")) assert_false(query_assertion(rec, d, "!=", "2015")) # Date YYYY-MM-dd d = "2015-01-01" assert_false(query_assertion(rec, d, "!=", d)) assert_true(query_assertion(rec, d, "!=", "2015-01-02")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "!=", "2015-01")) assert_false(query_assertion(rec, d, "!=", "2015")) # Date YYYY-MM d = "2015-01" assert_false(query_assertion(rec, d, "!=", d)) assert_true(query_assertion(rec, d, "!=", "2015-02")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "!=", "2015-01-01")) assert_false(query_assertion(rec, d, "!=", "2015")) # Date YYYY d = "2015" assert_false(query_assertion(rec, d, "!=", d)) assert_true(query_assertion(rec, d, "!=", "2016")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30.123")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15:30")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20:15")) assert_false(query_assertion(rec, d, "!=", "2015-01-01T20")) assert_false(query_assertion(rec, d, "!=", "2015-01-01")) assert_false(query_assertion(rec, d, "!=", "2015-01")) finally: try: h.execute_query("FIND Simple*").delete() except BaseException: pass def test_smaller_operator(): try: rec = set_up_rec() # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_false(query_assertion(rec, d, "<", d)) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20")) assert_false(query_assertion(rec, d, "<", "2015-05-05")) assert_false(query_assertion(rec, d, "<", "2015-05")) assert_false(query_assertion(rec, d, "<", "2015")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.122")) assert_false(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-ddThh:mm:ss.ns d = "2015-05-05T20:15:30.123" assert_false(query_assertion(rec, d, "<", d)) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20")) assert_false(query_assertion(rec, d, "<", "2015-05-05")) assert_false(query_assertion(rec, d, "<", "2015-05")) assert_false(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_false(query_assertion(rec, d, "<", d)) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20")) assert_false(query_assertion(rec, d, "<", "2015-05-05")) assert_false(query_assertion(rec, d, "<", "2015-05")) assert_false(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_false(query_assertion(rec, d, "<", d)) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20")) assert_false(query_assertion(rec, d, "<", "2015-05-05")) assert_false(query_assertion(rec, d, "<", "2015-05")) assert_false(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_false(query_assertion(rec, d, "<", d)) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, "<", "2015-05-05T20")) assert_false(query_assertion(rec, d, "<", "2015-05-05")) assert_false(query_assertion(rec, d, "<", "2015-05")) assert_false(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 def test_greater_operator(): try: rec = set_up_rec() # query with > # Date YYYY-MM-ddThh:mm:ss d = "2015-05-05T20:15:30" assert_false(query_assertion(rec, d, ">", d)) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20")) assert_false(query_assertion(rec, d, ">", "2015-05-05")) assert_false(query_assertion(rec, d, ">", "2015-05")) assert_false(query_assertion(rec, d, ">", "2015")) assert_false(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-ddThh:mm:ss.ns d = "2015-05-05T20:15:30.123" assert_false(query_assertion(rec, d, ">", d)) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20")) assert_false(query_assertion(rec, d, ">", "2015-05-05")) assert_false(query_assertion(rec, d, ">", "2015-05")) assert_false(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_false(query_assertion(rec, d, ">", d)) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20")) assert_false(query_assertion(rec, d, ">", "2015-05-05")) assert_false(query_assertion(rec, d, ">", "2015-05")) assert_false(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_false(query_assertion(rec, d, ">", d)) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20")) assert_false(query_assertion(rec, d, ">", "2015-05-05")) assert_false(query_assertion(rec, d, ">", "2015-05")) assert_false(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_false(query_assertion(rec, d, ">", d)) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30.123")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15:30")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20:15")) assert_false(query_assertion(rec, d, ">", "2015-05-05T20")) assert_false(query_assertion(rec, d, ">", "2015-05-05")) assert_false(query_assertion(rec, d, ">", "2015-05")) assert_false(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