diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000000000000000000000000000000..fc813ab948d33b00981a519f920215fac4298001 --- /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 0000000000000000000000000000000000000000..6cfedde1fefe3405b75f97924be25e24204c83a2 --- /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)