Commit 7791839f authored by Alexander Alekhin's avatar Alexander Alekhin

python(test): tests filtering

parent 2f946378
#!/usr/bin/env python
from __future__ import print_function
import unittest
import random
import time
import math
import sys
import array
import tarfile
import hashlib
import os
import getopt
import operator
import functools
import numpy as np
import cv2
import argparse
import unittest
# Python 3 moved urlopen to urllib.requests
try:
......@@ -25,7 +13,6 @@ except ImportError:
from tests_common import NewOpenCVTests
# Tests to run first; check the handful of basic operations that the later tests rely on
basedir = os.path.abspath(os.path.dirname(__file__))
......@@ -34,19 +21,4 @@ def load_tests(loader, tests, pattern):
return tests
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='run OpenCV python tests')
parser.add_argument('--repo', help='use sample image files from local git repository (path to folder), '
'if not set, samples will be downloaded from github.com')
parser.add_argument('--data', help='<not used> use data files from local folder (path to folder), '
'if not set, data files will be downloaded from docs.opencv.org')
args, other = parser.parse_known_args()
print("Testing OpenCV", cv2.__version__)
print("Local repo path:", args.repo)
NewOpenCVTests.repoPath = args.repo
try:
NewOpenCVTests.extraTestDataPath = os.environ['OPENCV_TEST_DATA_PATH']
except KeyError:
print('Missing opencv extra repository. Some of tests may fail.')
random.seed(0)
unit_argv = [sys.argv[0]] + other
unittest.main(argv=unit_argv)
NewOpenCVTests.bootstrap()
......@@ -66,3 +66,8 @@ class calibration_test(NewOpenCVTests):
self.assertLess(abs(rms - 0.196334638034), eps)
self.assertLess(cv2.norm(camera_matrix - cameraMatrixTest, cv2.NORM_L1), normCamEps)
self.assertLess(cv2.norm(dist_coefs - distCoeffsTest, cv2.NORM_L1), normDistEps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -90,3 +90,7 @@ class camshift_test(NewOpenCVTests):
def test_camshift(self):
self.prepareRender()
self.runTracker()
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -44,3 +44,7 @@ class dft_test(NewOpenCVTests):
img_back = cv2.normalize(img_back, 0.0, 1.0, cv2.NORM_MINMAX)
self.assertLess(cv2.norm(img_back - img_backTest), eps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -195,3 +195,7 @@ class digits_test(NewOpenCVTests):
self.assertLess(errors[0] - 0.034, eps)
self.assertLess(errors[1] - 0.018, eps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -86,3 +86,7 @@ class facedetect_test(NewOpenCVTests):
self.assertEqual(faces_matches, 2)
self.assertEqual(eyes_matches, 2)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -158,3 +158,7 @@ class PlaneTracker:
if descrs is None: # detectAndCompute returns descs=None if no keypoints found
descrs = []
return keypoints, descrs
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -64,3 +64,7 @@ class fitline_test(NewOpenCVTests):
for i in range(len(lines)):
self.assertLessEqual(cv2.norm(refVec - lines[i][0:2], cv2.NORM_L2), eps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -58,3 +58,7 @@ class gaussian_mix_test(NewOpenCVTests):
matches_count += 1
self.assertEqual(matches_count, cluster_n)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -34,3 +34,7 @@ class TestGoodFeaturesToTrack_test(NewOpenCVTests):
# Increasing thresh should monly truncate result list
for i in range(len(r1)):
self.assertTrue(cv2.norm(r1[i][0] - r0[i][0])==0)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -65,3 +65,7 @@ class grabcut_test(NewOpenCVTests):
cv2.imwrite(self.extraTestDataPath + '/cv/grabcut/exp_mask2py.png', exp_mask2)
self.assertEqual(self.verify(self.scaleMask(mask), exp_mask2), True)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -78,3 +78,7 @@ class houghcircles_test(NewOpenCVTests):
self.assertGreater(float(matches_counter) / len(testCircles), .5)
self.assertLess(float(len(circles) - matches_counter) / len(circles), .75)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -63,3 +63,7 @@ class houghlines_test(NewOpenCVTests):
matches_counter += 1
self.assertGreater(float(matches_counter) / len(testLines), .7)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -68,3 +68,7 @@ class kmeans_test(NewOpenCVTests):
confidence = getMainLabelConfidence(labels[offset : (offset + clusterSizes[i])], cluster_n)
offset += clusterSizes[i]
self.assertGreater(confidence, 0.9)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -84,6 +84,6 @@ class Hackathon244Tests(NewOpenCVTests):
self.check_close_pairs(mc, mc0, 5)
self.assertLessEqual(abs(mr - mr0), 5)
if __name__ == '__main__':
import unittest
unittest.main()
NewOpenCVTests.bootstrap()
......@@ -165,3 +165,7 @@ class letter_recog_test(NewOpenCVTests):
self.assertLess(train_rate - testErrors[Model][0], eps)
self.assertLess(test_rate - testErrors[Model][1], eps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -94,3 +94,7 @@ class lk_homography_test(NewOpenCVTests):
self.p0 = cv2.goodFeaturesToTrack(frame_gray, **feature_params)
self.assertEqual(isForegroundHomographyFound, True)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -109,3 +109,7 @@ class lk_track_test(NewOpenCVTests):
if self.frame_idx > 300:
break
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -19,5 +19,4 @@ class Bindings(NewOpenCVTests):
boost.isClassifier() # from ml::StatModel
if __name__ == '__main__':
import unittest
unittest.main()
NewOpenCVTests.bootstrap()
......@@ -49,3 +49,6 @@ class morphology_test(NewOpenCVTests):
for mode in modes:
res = update(mode)
self.assertEqual(self.hashimg(res), referenceHashes[mode])
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -67,3 +67,6 @@ class mser_test(NewOpenCVTests):
self.assertEqual(nmsers, len(boxes))
self.assertLessEqual(minRegs, nmsers)
self.assertGreaterEqual(maxRegs, nmsers)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -60,3 +60,6 @@ class peopledetect_test(NewOpenCVTests):
matches += 1
self.assertGreater(matches, 0)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -21,3 +21,6 @@ class shape_test(NewOpenCVTests):
self.assertAlmostEqual(d1, 26.4196891785, 3, "HausdorffDistanceExtractor")
self.assertAlmostEqual(d2, 0.25804194808, 3, "ShapeContextDistanceExtractor")
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -94,3 +94,6 @@ class squares_test(NewOpenCVTests):
self.assertGreater(matches_counter / len(testSquares), 0.9)
self.assertLess( (len(squares) - matches_counter) / len(squares), 0.2)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -18,3 +18,6 @@ class stitching_test(NewOpenCVTests):
self.assertAlmostEqual(pano.shape[0], 685, delta=100, msg="rows: %r" % list(pano.shape))
self.assertAlmostEqual(pano.shape[1], 1025, delta=100, msg="cols: %r" % list(pano.shape))
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -42,3 +42,6 @@ class texture_flow_test(NewOpenCVTests):
for i in range(len(textureVectors)):
self.assertTrue(cv2.norm(textureVectors[i], cv2.NORM_L2) < eps
or abs(cv2.norm(textureVectors[i], cv2.NORM_L2) - d) < eps)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -83,5 +83,4 @@ class UMat(NewOpenCVTests):
# self.assertTrue(np.allclose(data, data_umat))
if __name__ == '__main__':
import unittest
unittest.main()
NewOpenCVTests.bootstrap()
......@@ -31,3 +31,6 @@ class watershed_test(NewOpenCVTests):
cv2.imwrite(self.extraTestDataPath + '/cv/watershed/wshed_segments.png', refSegments)
self.assertLess(cv2.norm(segments - refSegments, cv2.NORM_L1) / 255.0, 50)
if __name__ == '__main__':
NewOpenCVTests.bootstrap()
......@@ -2,10 +2,13 @@
from __future__ import print_function
import unittest
import os
import sys
import unittest
import hashlib
import os
import random
import argparse
import numpy as np
import cv2
......@@ -62,6 +65,26 @@ class NewOpenCVTests(unittest.TestCase):
if not a > b:
self.fail('%s not greater than %s' % (repr(a), repr(b)))
@staticmethod
def bootstrap():
parser = argparse.ArgumentParser(description='run OpenCV python tests')
parser.add_argument('--repo', help='use sample image files from local git repository (path to folder), '
'if not set, samples will be downloaded from github.com')
parser.add_argument('--data', help='<not used> use data files from local folder (path to folder), '
'if not set, data files will be downloaded from docs.opencv.org')
args, other = parser.parse_known_args()
print("Testing OpenCV", cv2.__version__)
print("Local repo path:", args.repo)
NewOpenCVTests.repoPath = args.repo
try:
NewOpenCVTests.extraTestDataPath = os.environ['OPENCV_TEST_DATA_PATH']
except KeyError:
print('Missing opencv extra repository. Some of tests may fail.')
random.seed(0)
unit_argv = [sys.argv[0]] + other
unittest.main(argv=unit_argv)
def intersectionRate(s1, s2):
x1, y1, x2, y2 = s1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment