[python-hdf5storage] 81/84: Added tests for reading and writing more than one data item at a time.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Feb 29 08:25:06 UTC 2016


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag 0.1.10
in repository python-hdf5storage.

commit 4d997ed9481dcd9887369ae108191ddc3dcaa437
Author: Freja Nordsiek <fnordsie at gmail.com>
Date:   Sun Nov 29 16:02:45 2015 +0100

    Added tests for reading and writing more than one data item at a time.
---
 tests/test_multi_io.py | 108 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/tests/test_multi_io.py b/tests/test_multi_io.py
new file mode 100644
index 0000000..c71ae80
--- /dev/null
+++ b/tests/test_multi_io.py
@@ -0,0 +1,108 @@
+# Copyright (c) 2013-2015, Freja Nordsiek
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+import os
+import os.path
+import random
+
+import hdf5storage
+
+from asserts import *
+from make_randoms import *
+
+
+random.seed()
+
+
+filename = 'data.mat'
+
+
+# A series of tests to make sure that more than one data item can be
+# written or read at a time using the writes and reads functions.
+
+def test_multi_write():
+    # Makes a random dict of random paths and variables (random number
+    # of randomized paths with random numpy arrays as values).
+    data = dict()
+    for i in range(0, random.randint(min_dict_keys, \
+            max_dict_keys)):
+        name = random_name()
+        data[name] = \
+            random_numpy(random_numpy_shape( \
+            dict_value_subarray_dimensions, \
+            max_dict_value_subarray_axis_length), \
+            dtype=random.choice(dtypes))
+
+    # Write it and then read it back item by item.
+    if os.path.exists(filename):
+        os.remove(filename)
+    try:
+        hdf5storage.writes(mdict=data, filename=filename)
+        out = dict()
+        for p in data:
+            out[p] = hdf5storage.read(path=p, filename=filename)
+    except:
+        raise
+    finally:
+        if os.path.exists(filename):
+            os.remove(filename)
+
+    # Compare data and out.
+    assert_equal(out, data)
+
+
+def test_multi_read():
+    # Makes a random dict of random paths and variables (random number
+    # of randomized paths with random numpy arrays as values).
+    data = dict()
+    for i in range(0, random.randint(min_dict_keys, \
+            max_dict_keys)):
+        name = random_name()
+        data[name] = \
+            random_numpy(random_numpy_shape( \
+            dict_value_subarray_dimensions, \
+            max_dict_value_subarray_axis_length), \
+            dtype=random.choice(dtypes))
+
+    paths = data.keys()
+    # Write it item by item  and then read it back in one unit.
+    if os.path.exists(filename):
+        os.remove(filename)
+    try:
+        for p in paths:
+            hdf5storage.write(data=data[p], path=p, filename=filename)
+        out = hdf5storage.reads(paths=list(data.keys()),
+                                filename=filename)
+    except:
+        raise
+    finally:
+        if os.path.exists(filename):
+            os.remove(filename)
+
+    # Compare data and out.
+    for i, p in enumerate(paths):
+        assert_equal(out[i], data[p])

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/python-hdf5storage.git



More information about the debian-science-commits mailing list