From a4083e1756facee8381bafce8ffdccd4cda8b5cc Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Tue, 1 Oct 2019 23:15:52 +0200
Subject: [PATCH] TST: add NaN double values test

---
 CHANGELOG.md         | 22 ++++++++++++++++++++++
 tests/test_double.py | 45 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+)
 create mode 100644 CHANGELOG.md
 create mode 100644 tests/test_double.py

diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..fc813ab
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,22 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [Unreleased]
+
+### Added (for new features)
+
+### Changed (for changes in existing functionality)
+
+### Deprecated (for soon-to-be removed features)
+
+### Removed (for now removed features)
+
+### Fixed (for any bug fixes)
+
+- Tests for NaN Double Values (see https://gitlab.com/caosdb/caosdb-server/issues/41)
+
+### Security (in case of vulnerabilities)
+
diff --git a/tests/test_double.py b/tests/test_double.py
new file mode 100644
index 0000000..6cfedde
--- /dev/null
+++ b/tests/test_double.py
@@ -0,0 +1,45 @@
+# encoding: utf-8
+#
+# ** header v3.0
+# This file is a part of the CaosDB Project.
+#
+# Copyright (C) 2019 IndiScale GmbH
+#
+# 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
+#
+
+import math
+import caosdb as db
+
+
+def setup_module():
+    clean = db.execute_query("FIND Test*")
+    if len(clean) > 0:
+        clean.delete()
+
+def teardown_module():
+    setup_module()
+
+def test_nan():
+    p = db.Property(name="TestDoubleProperty", datatype=db.DOUBLE).insert()
+    rt = db.RecordType(name="TestRecordType").add_property(name="TestDoubleProperty",
+                                                           value="NaN").insert()
+
+    test1 = db.execute_query("FIND TestRecordType", unique=True)
+    assert math.isnan(test1.get_property("TestDoubleProperty").value)
+
+    test2 = db.execute_query("FIND TestRecordType WITH TestDoubleProperty = NaN", unique=True)
+    assert math.isnan(test1.get_property("TestDoubleProperty").value)
-- 
GitLab