2 """"Core serializaion tests."""
7 from tests_common import NewOpenCVTests
10 class persistence_test(NewOpenCVTests):
11 def test_yml_rw(self):
12 fd, fname = tempfile.mkstemp(prefix="opencv_python_persistence_", suffix=".yml")
16 expected = np.array([[[0, 1, 2, 3, 4]]])
17 expected_str = ("Hello", "World", "!")
18 fs = cv.FileStorage(fname, cv.FILE_STORAGE_WRITE)
19 fs.write("test", expected)
20 fs.write("strings", expected_str)
24 fs = cv.FileStorage(fname, cv.FILE_STORAGE_READ)
25 root = fs.getFirstTopLevelNode()
26 self.assertEqual(root.name(), "test")
28 test = fs.getNode("test")
29 self.assertEqual(test.empty(), False)
30 self.assertEqual(test.name(), "test")
31 self.assertEqual(test.type(), cv.FILE_NODE_MAP)
32 self.assertEqual(test.isMap(), True)
34 self.assertEqual(actual.shape, expected.shape)
35 self.assertEqual(np.array_equal(expected, actual), True)
37 strings = fs.getNode("strings")
38 self.assertEqual(strings.isSeq(), True)
39 self.assertEqual(strings.size(), len(expected_str))
40 self.assertEqual(all(strings.at(i).isString() for i in range(strings.size())), True)
41 self.assertSequenceEqual([strings.at(i).string() for i in range(strings.size())], expected_str)