refactor: rework test to be more specific
authorVadim Levin <vadim.levin@xperience.ai>
Wed, 30 Nov 2022 14:40:38 +0000 (17:40 +0300)
committerVadim Levin <vadim.levin@xperience.ai>
Wed, 30 Nov 2022 15:31:03 +0000 (18:31 +0300)
modules/core/include/opencv2/core/bindings_utils.hpp
modules/imgproc/include/opencv2/imgproc.hpp
modules/imgproc/misc/python/test/test_matx_converter.py [deleted file]
modules/imgproc/src/test_matx_converter.cpp [deleted file]
modules/python/src2/cv2_convert.hpp
modules/python/test/test_misc.py

index 4f7eb53..76c9437 100644 (file)
@@ -219,6 +219,11 @@ AsyncArray testAsyncException()
     return p.getArrayResult();
 }
 
+CV_WRAP static inline
+String dumpVec2i(const cv::Vec2i value = cv::Vec2i(42, 24)) {
+    return format("Vec2i(%d, %d)", value[0], value[1]);
+}
+
 namespace nested {
 CV_WRAP static inline bool testEchoBooleanFunction(bool flag) {
     return flag;
index 073833e..afc2742 100644 (file)
@@ -4973,7 +4973,6 @@ public:
 };
 
 //! @cond IGNORED
-CV_EXPORTS_W void testMatxPythonConverter(InputArray src, OutputArray dst, const Vec2d& defaultParam = Vec2d(-5, 5));
 
 // === LineIterator implementation ===
 
diff --git a/modules/imgproc/misc/python/test/test_matx_converter.py b/modules/imgproc/misc/python/test/test_matx_converter.py
deleted file mode 100644 (file)
index 8a39031..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-from __future__ import print_function
-import cv2 as cv
-from cv2 import testMatxPythonConverter
-from tests_common import NewOpenCVTests
-
-
-class MatxConverterTest(NewOpenCVTests):
-    def test_matxconverter(self):
-        samples = ['samples/data/lena.jpg', 'cv/cascadeandhog/images/mona-lisa.png']
-
-        for sample in samples:
-            img = self.get_sample(sample)
-            out = testMatxPythonConverter(img)
-
-
-if __name__ == '__main__':
-    NewOpenCVTests.bootstrap()
-
-
diff --git a/modules/imgproc/src/test_matx_converter.cpp b/modules/imgproc/src/test_matx_converter.cpp
deleted file mode 100644 (file)
index 96e0eca..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#include "precomp.hpp"
-
-namespace cv{
-    void testMatxPythonConverter(InputArray _src, OutputArray _dst, const Vec2d& defaultParam){
-        printf("%f %f\n", defaultParam[0], defaultParam[1]);
-        Mat src = _src.getMat();
-        src.copyTo(_dst);
-    }
-}
index 7dc0ffb..700f29e 100644 (file)
@@ -62,8 +62,9 @@ PyObject* pyopencv_from(const T& src) { return PyOpenCV_Converter<T>::from(src);
 template<typename _Tp, int m, int n>
 bool pyopencv_to(PyObject* o, cv::Matx<_Tp, m, n>& mx, const ArgInfo& info)
 {
-    if (!o || o == Py_None)
+    if (!o || o == Py_None) {
         return true;
+    }
 
     cv::Mat tmp;
     if (!pyopencv_to(o, tmp, info)) {
index fd21656..deabbd2 100644 (file)
@@ -736,6 +736,13 @@ class CanUsePurePythonModuleFunction(NewOpenCVTests):
         res = cv.utils._native.testOverwriteNativeMethod(123)
         self.assertEqual(res, 123, msg="Failed to call native method implementation")
 
+    def test_default_matx_argument(self):
+        res = cv.utils.dumpVec2i()
+        self.assertEqual(res, "Vec2i(42, 24)",
+                         msg="Default argument is not properly handled")
+        res = cv.utils.dumpVec2i((12, 21))
+        self.assertEqual(res, "Vec2i(12, 21)")
+
 
 class SamplesFindFile(NewOpenCVTests):