Added more test cases
This commit is contained in:
@@ -1,25 +1,20 @@
|
||||
# compile the test sources
|
||||
file(GLOB SOURCE_FILES "*.cpp")
|
||||
add_custom_target(opencv_test_matlab_sources)
|
||||
foreach(SOURCE_FILE ${SOURCE_FILES})
|
||||
get_filename_component(FILENAME ${SOURCE_FILE} NAME_WE)
|
||||
# compile the source file using mex
|
||||
add_custom_command(TARGET opencv_test_matlab_sources PRE_BUILD
|
||||
COMMAND echo ${MATLAB_MEX_SCRIPT} ${MEX_INCLUDES}
|
||||
${SOURCE_FILE}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
endforeach()
|
||||
set(TEST_PROXY ${CMAKE_CURRENT_BINARY_DIR}/test.proxy)
|
||||
file(REMOVE ${TEST_PROXY})
|
||||
|
||||
# copy the test files into the build dir
|
||||
file(GLOB TEST_FILES "*.m")
|
||||
foreach(TEST_FILE ${TEST_FILES})
|
||||
add_custom_command(TARGET opencv_test_matlab_sources PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
copy ${TEST_FILE} ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
endforeach()
|
||||
|
||||
# generate
|
||||
# call the python executable to generate the Matlab gateways
|
||||
add_custom_command(
|
||||
OUTPUT ${TEST_PROXY}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/OpenCVTest.m ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testsuite.m ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${TEST_PROXY}
|
||||
COMMENT "Building Matlab tests"
|
||||
)
|
||||
|
||||
# targets
|
||||
# opencv_matlab_sources --> opencv_matlab
|
||||
add_custom_target(opencv_test_matlab ALL DEPENDS ${TEST_PROXY})
|
||||
add_dependencies(opencv_test_matlab ${the_module})
|
||||
|
||||
# run the matlab test suite
|
||||
add_test(opencv_test_matlab
|
||||
|
@@ -4,16 +4,6 @@ classdef OpenCVTest < matlab.unittest.TestCase
|
||||
|
||||
methods(Test)
|
||||
|
||||
% check if the autogenerated functions can be found
|
||||
function functionsExist(testcase)
|
||||
try
|
||||
cv.rand();
|
||||
catch
|
||||
testcase.verifyFail();
|
||||
end
|
||||
testcase.verifyTrue(true);
|
||||
end
|
||||
|
||||
% check that std exception is thrown
|
||||
function stdException(testcase)
|
||||
try
|
||||
@@ -27,7 +17,13 @@ classdef OpenCVTest < matlab.unittest.TestCase
|
||||
|
||||
% check that OpenCV exceptions are correctly caught
|
||||
function cvException(testcase)
|
||||
testcase.verifyFail();
|
||||
try
|
||||
cv_exception();
|
||||
testcase.verifyFail();
|
||||
catch
|
||||
% TODO: Catch more specific exception
|
||||
testcase.verifyTrue(true);
|
||||
end
|
||||
end
|
||||
|
||||
% check that all exceptions are caught
|
||||
@@ -41,5 +37,21 @@ classdef OpenCVTest < matlab.unittest.TestCase
|
||||
end
|
||||
end
|
||||
|
||||
% check that a matrix is correctly filled with random numbers
|
||||
function randomFill(testcase)
|
||||
sz = [7 11];
|
||||
mat = zeros(sz);
|
||||
mat = cv.randn(mat, 0, 1);
|
||||
testcase.verifyEqual(size(mat), sz, 'Matrix should not change size');
|
||||
testcase.verifyNotEqual(mat, zeros(sz), 'Matrix should be nonzero');
|
||||
end
|
||||
|
||||
% check that cv::waitKey waits for at least specified time
|
||||
function waitKey(testcase)
|
||||
tic();
|
||||
cv.waitKey(500);
|
||||
elapsed = toc();
|
||||
testcase.verifyGreaterThan(elapsed, 0.5, 'Elapsed time should be at least 0.5 seconds');
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -1,3 +1,6 @@
|
||||
% add the opencv bindings folder
|
||||
addpath ..
|
||||
|
||||
%setup the tests
|
||||
opencv_tests = OpenCVTest();
|
||||
|
||||
|
Reference in New Issue
Block a user