void CV_GoodFeatureToTTest::run_func() { int cn = src_gray.channels(); CV_Assert( cn == 1 ); CV_Assert( ( CV_MAT_DEPTH(SrcType) == CV_32FC1 ) || ( CV_MAT_DEPTH(SrcType) == CV_8UC1 )); TEST_MESSAGEL (" maxCorners = ", maxCorners) if (useHarrisDetector) { TEST_MESSAGE (" useHarrisDetector = true\n"); } else { TEST_MESSAGE (" useHarrisDetector = false\n"); } if( CV_MAT_DEPTH(SrcType) == CV_32FC1) { if (src_gray.depth() != CV_32FC1 ) src_gray.convertTo(src_gray32f, CV_32FC1); else src_gray32f = src_gray.clone(); TEST_MESSAGE ("goodFeaturesToTrack 32f\n") goodFeaturesToTrack( src_gray32f, corners, maxCorners, qualityLevel, minDistance, Mat(), blockSize, gradientSize, useHarrisDetector, k ); } else { if (src_gray.depth() != CV_8UC1 ) src_gray.convertTo(src_gray8U, CV_8UC1); else src_gray8U = src_gray.clone(); TEST_MESSAGE ("goodFeaturesToTrack 8U\n") goodFeaturesToTrack( src_gray8U, corners, maxCorners, qualityLevel, minDistance, Mat(), blockSize, gradientSize, useHarrisDetector, k ); } }
/* Sun 5.5, Linux, FreeBSD, DJGPP */ double cpu_time() { struct rusage tmp; TEST_MESSAGE("getrusage()"); if ( getrusage( RUSAGE_SELF, &tmp ) ) return 0.0; return (double)(tmp.ru_utime.tv_sec) +(double)(tmp.ru_utime.tv_usec)/1000000; }
double cpu_time( void ) { clock_t t; static clock_t last = (clock_t)-1; TEST_MESSAGE("clock()"); t = clock(); if (last == (clock_t)-1) last = t; return (double)(t-last)/CLOCKS_PER_SEC; }
int get_dimension_from_path(std::string path) { std::string filename = boost::filesystem::path(path).filename().string(); size_t first_ = filename.find('_') + 1; size_t second_ = filename.find('_', first_); try { return std::stoi(filename.substr(first_, second_ - first_)) * 3; } catch (std::invalid_argument & e) { TEST_MESSAGE("ERROR: failed to get dimension from filename: " + filename); BOOST_REQUIRE(false); } }
FIXTURE_TEST_CASE(Test1YesDep, RefseqFixture) { if (siteless) { TEST_MESSAGE("Test skipped because site repository does not exist"); return; } rc_t rc = 0; const VDatabase *db = NULL; const char SRR619505[] = "SRR619505"; REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, NULL, SRR619505)); RELEASE(VDatabase, db); VPath* acc = NULL; REQUIRE_RC(VFSManagerMakePath(vmgr, &acc, SRR619505)); const VPath *local = NULL; REQUIRE_RC(VResolverLocal(resolver, acc, &local)); RELEASE(VPath, acc); const String *s = NULL; REQUIRE_RC(VPathMakeString(local, &s)); REQUIRE(s && s->addr); REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, NULL, s->addr)); const VDBDependencies *dep = NULL; // missing REQUIRE_RC(VDatabaseListDependencies(db, &dep, true)); uint32_t count = 1; REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)0); RELEASE(VDBDependencies, dep); REQUIRE_RC(VDatabaseListDependencies(db, &dep, false)); REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)1); RELEASE(VDBDependencies, dep); RELEASE(VDatabase, db); free(const_cast<String*>(s)); RELEASE(VPath, local); }
double cpu_time() { struct tms tmp; TEST_MESSAGE("times()"); if ( times( &tmp ) == -1 ) return 0.0; return (double)(tmp.tms_utime)/CLK_TCK; }
int CV_GoodFeatureToTTest::validate_test_results( int test_case_idx ) { static const double eps = 2e-6; if( CV_MAT_DEPTH(SrcType) == CV_32FC1 ) { if (src_gray.depth() != CV_32FC1 ) src_gray.convertTo(src_gray32f, CV_32FC1); else src_gray32f = src_gray.clone(); TEST_MESSAGE ("test_goodFeaturesToTrack 32f\n") test_goodFeaturesToTrack( src_gray32f, Refcorners, maxCorners, qualityLevel, minDistance, Mat(), blockSize, gradientSize, useHarrisDetector, k ); } else { if (src_gray.depth() != CV_8UC1 ) src_gray.convertTo(src_gray8U, CV_8UC1); else src_gray8U = src_gray.clone(); TEST_MESSAGE ("test_goodFeaturesToTrack 8U\n") test_goodFeaturesToTrack( src_gray8U, Refcorners, maxCorners, qualityLevel, minDistance, Mat(), blockSize, gradientSize, useHarrisDetector, k ); } double e = cv::norm(corners, Refcorners); // TODO cvtest if (e > eps) { TEST_MESSAGEL ("Number of features: Refcorners = ", Refcorners.size()) TEST_MESSAGEL (" TestCorners = ", corners.size()) TEST_MESSAGE ("\n") ts->printf(cvtest::TS::CONSOLE, "actual error: %g, expected: %g", e, eps); ts->set_failed_test_info(cvtest::TS::FAIL_BAD_ACCURACY); for(int i = 0; i < (int)std::min((unsigned int)(corners.size()), (unsigned int)(Refcorners.size())); i++){ if ( (corners[i].x != Refcorners[i].x) || (corners[i].y != Refcorners[i].y)) printf("i = %i X %2.2f Xref %2.2f Y %2.2f Yref %2.2f\n",i,corners[i].x,Refcorners[i].x,corners[i].y,Refcorners[i].y); } } else { TEST_MESSAGEL (" Refcorners = ", Refcorners.size()) TEST_MESSAGEL (" TestCorners = ", corners.size()) TEST_MESSAGE ("\n") ts->set_failed_test_info(cvtest::TS::OK); } return BaseTest::validate_test_results(test_case_idx); }