@ -62,6 +62,74 @@ TEST_F(S11N_Basic, Test_fp64) {
EXPECT_EQ ( x , get < double > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_uint64 ) {
uint64_t x = 2147483647374 ;
put ( x ) ;
EXPECT_EQ ( x , get < uint64_t > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_int32_pos ) {
int32_t x = 2147483647 ;
put ( x ) ;
EXPECT_EQ ( x , get < int32_t > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_int32_neg ) {
int32_t x = - 2147483646 ;
put ( x ) ;
EXPECT_EQ ( x , get < int32_t > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_vector_bool ) {
std : : vector < bool > v = { false , true , false } ;
put ( v ) ;
EXPECT_EQ ( v , get < std : : vector < bool > > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_map_string2string ) {
using T = std : : map < std : : string , std : : string > ;
T v ;
v [ " gapi " ] = " cool " ;
v [ " 42 " ] = " answer " ;
v [ " hi " ] = " hello there " ;
put ( v ) ;
EXPECT_EQ ( v , get < T > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_map_int2int ) {
using T = std : : map < int , int32_t > ;
T v ;
v [ 1 ] = 23 ;
v [ - 100 ] = 0 ;
v [ 435346 ] = - 12346 ;
put ( v ) ;
EXPECT_EQ ( v , get < T > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_map_float2cvsize ) {
using T = std : : map < float , cv : : Size > ;
T v ;
v [ 0.4f ] = cv : : Size ( 4 , 5 ) ;
v [ 234.43f ] = cv : : Size ( 3421 , 321 ) ;
v [ 2223.f ] = cv : : Size ( 1920 , 1080 ) ;
put ( v ) ;
EXPECT_EQ ( v , get < T > ( ) ) ;
}
TEST_F ( S11N_Basic , Test_map_uint642cvmat ) {
using T = std : : map < uint64_t , cv : : Mat > ;
T v ;
v [ 21304805324 ] = cv : : Mat ( 3 , 3 , CV_8UC1 , cv : : Scalar : : all ( 3 ) ) ;
v [ 4353245222 ] = cv : : Mat ( 5 , 5 , CV_8UC3 , cv : : Scalar : : all ( 7 ) ) ;
v [ 0 ] = cv : : Mat ( 10 , 10 , CV_32FC2 , cv : : Scalar : : all ( - 128.f ) ) ;
put ( v ) ;
auto out_v = get < T > ( ) ;
for ( const auto & el : out_v ) {
EXPECT_NE ( v . end ( ) , v . find ( el . first ) ) ;
EXPECT_EQ ( 0 , cv : : norm ( el . second , v [ el . first ] ) ) ;
}
}
TEST_F ( S11N_Basic , Test_vector_int ) {
std : : vector < int > v = { 1 , 2 , 3 } ;
put ( v ) ;
@ -348,4 +416,58 @@ TEST_F(S11N_Basic, Test_Bind_RunArgs_MatScalar) {
i + + ;
}
}
namespace {
template < cv : : detail : : OpaqueKind K , typename T >
bool verifyOpaqueKind ( T & & in ) {
auto inObjs = cv : : gin ( in ) ;
auto in_o_ref = cv : : util : : get < cv : : detail : : OpaqueRef > ( inObjs [ 0 ] ) ;
return K = = in_o_ref . getKind ( ) ;
}
template < cv : : detail : : OpaqueKind K , typename T >
bool verifyArrayKind ( T & & in ) {
auto inObjs = cv : : gin ( in ) ;
auto in_o_ref = cv : : util : : get < cv : : detail : : VectorRef > ( inObjs [ 0 ] ) ;
return K = = in_o_ref . getKind ( ) ;
}
}
TEST_F ( S11N_Basic , Test_Gin_GOpaque ) {
int i ; float f ; double d ;
std : : uint64_t ui ; bool b ;
std : : string s ;
cv : : Rect r ; cv : : Size sz ;
cv : : Point p ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_INT > ( i ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_FLOAT > ( f ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_DOUBLE > ( d ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_UINT64 > ( ui ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_BOOL > ( b ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_STRING > ( s ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_RECT > ( r ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_SIZE > ( sz ) ) ;
EXPECT_TRUE ( verifyOpaqueKind < cv : : detail : : OpaqueKind : : CV_POINT > ( p ) ) ;
}
TEST_F ( S11N_Basic , Test_Gin_GArray ) {
std : : vector < int > i ; std : : vector < float > f ; std : : vector < double > d ;
std : : vector < std : : uint64_t > ui ; std : : vector < bool > b ;
std : : vector < std : : string > s ;
std : : vector < cv : : Rect > r ; std : : vector < cv : : Size > sz ;
std : : vector < cv : : Point > p ;
std : : vector < cv : : Mat > mat ;
std : : vector < cv : : Scalar > sc ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_INT > ( i ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_FLOAT > ( f ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_DOUBLE > ( d ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_UINT64 > ( ui ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_BOOL > ( b ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_STRING > ( s ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_RECT > ( r ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_SIZE > ( sz ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_POINT > ( p ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_MAT > ( mat ) ) ;
EXPECT_TRUE ( verifyArrayKind < cv : : detail : : OpaqueKind : : CV_SCALAR > ( sc ) ) ;
}
} // namespace opencv_test