Path: blob/master/modules/python/test/test_persistence.py
16337 views
#!/usr/bin/env python1""""Core serializaion tests."""2import tempfile3import os4import cv2 as cv5import numpy as np6from tests_common import NewOpenCVTests789class persistence_test(NewOpenCVTests):10def test_yml_rw(self):11fd, fname = tempfile.mkstemp(prefix="opencv_python_persistence_", suffix=".yml")12os.close(fd)1314# Writing ...15expected = np.array([[[0, 1, 2, 3, 4]]])16expected_str = ("Hello", "World", "!")17fs = cv.FileStorage(fname, cv.FILE_STORAGE_WRITE)18fs.write("test", expected)19fs.write("strings", expected_str)20fs.release()2122# Reading ...23fs = cv.FileStorage(fname, cv.FILE_STORAGE_READ)24root = fs.getFirstTopLevelNode()25self.assertEqual(root.name(), "test")2627test = fs.getNode("test")28self.assertEqual(test.empty(), False)29self.assertEqual(test.name(), "test")30self.assertEqual(test.type(), cv.FILE_NODE_MAP)31self.assertEqual(test.isMap(), True)32actual = test.mat()33self.assertEqual(actual.shape, expected.shape)34self.assertEqual(np.array_equal(expected, actual), True)3536strings = fs.getNode("strings")37self.assertEqual(strings.isSeq(), True)38self.assertEqual(strings.size(), len(expected_str))39self.assertEqual(all(strings.at(i).isString() for i in range(strings.size())), True)40self.assertSequenceEqual([strings.at(i).string() for i in range(strings.size())], expected_str)41fs.release()4243os.remove(fname)444546