2019-10-14 09:49:15 +01:00
/*
libzint - the open source barcode library
Copyright ( C ) 2008 - 2019 Robin Stuart < rstuart114 @ gmail . com >
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions
are met :
1. Redistributions of source code must retain the above copyright
notice , this list of conditions and the following disclaimer .
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in the
documentation and / or other materials provided with the distribution .
3. Neither the name of the project nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS " AS IS " AND
ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL
DAMAGES ( INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES ; LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION )
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT
LIABILITY , OR TORT ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE .
*/
2019-11-27 16:16:14 +00:00
/* vim: set ts=4 sw=4 et : */
2019-10-14 09:49:15 +01:00
# include "testcommon.h"
static void test_koreapost ( void )
{
testStart ( " " ) ;
int ret ;
struct item {
unsigned char * data ;
int ret_encode ;
int ret_vector ;
int expected_height ;
int expected_rows ;
int expected_width ;
} ;
struct item data [ ] = {
2019-11-27 16:16:14 +00:00
/* 0*/ { " 123456 " , 0 , 0 , 50 , 1 , 167 } ,
2019-10-14 09:49:15 +01:00
} ;
int data_size = sizeof ( data ) / sizeof ( struct item ) ;
for ( int i = 0 ; i < data_size ; i + + ) {
struct zint_symbol * symbol = ZBarcode_Create ( ) ;
assert_nonnull ( symbol , " Symbol not created \n " ) ;
symbol - > symbology = BARCODE_KOREAPOST ;
int length = strlen ( data [ i ] . data ) ;
ret = ZBarcode_Encode ( symbol , data [ i ] . data , length ) ;
assert_equal ( ret , data [ i ] . ret_encode , " i:%d ZBarcode_Encode ret %d != %d \n " , i , ret , data [ i ] . ret_encode ) ;
if ( data [ i ] . ret_vector ! = - 1 ) {
assert_equal ( symbol - > height , data [ i ] . expected_height , " i:%d symbol->height %d != %d \n " , i , symbol - > height , data [ i ] . expected_height ) ;
assert_equal ( symbol - > rows , data [ i ] . expected_rows , " i:%d symbol->rows %d != %d \n " , i , symbol - > rows , data [ i ] . expected_rows ) ;
assert_equal ( symbol - > width , data [ i ] . expected_width , " i:%d symbol->width %d != %d \n " , i , symbol - > width , data [ i ] . expected_width ) ;
ret = ZBarcode_Buffer_Vector ( symbol , 0 ) ;
assert_equal ( ret , data [ i ] . ret_vector , " i:%d ZBarcode_Buffer_Vector ret %d != %d \n " , i , ret , data [ i ] . ret_vector ) ;
}
ZBarcode_Delete ( symbol ) ;
}
testFinish ( ) ;
}
2019-11-27 16:16:14 +00:00
static void test_japanpost ( void )
{
testStart ( " " ) ;
int ret ;
struct item {
unsigned char * data ;
int ret_encode ;
int ret_vector ;
int expected_height ;
int expected_rows ;
int expected_width ;
char * comment ;
} ;
struct item data [ ] = {
/* 0*/ { " 123 " , 0 , 0 , 8 , 3 , 133 , " Check 3 " } ,
/* 1*/ { " 123456-AB " , 0 , 0 , 8 , 3 , 133 , " Check 10 " } ,
/* 2*/ { " 123456 " , 0 , 0 , 8 , 3 , 133 , " Check 11 " } ,
} ;
int data_size = sizeof ( data ) / sizeof ( struct item ) ;
for ( int i = 0 ; i < data_size ; i + + ) {
struct zint_symbol * symbol = ZBarcode_Create ( ) ;
assert_nonnull ( symbol , " Symbol not created \n " ) ;
symbol - > symbology = BARCODE_JAPANPOST ;
int length = strlen ( data [ i ] . data ) ;
ret = ZBarcode_Encode ( symbol , data [ i ] . data , length ) ;
assert_equal ( ret , data [ i ] . ret_encode , " i:%d ZBarcode_Encode ret %d != %d \n " , i , ret , data [ i ] . ret_encode ) ;
if ( data [ i ] . ret_vector ! = - 1 ) {
assert_equal ( symbol - > height , data [ i ] . expected_height , " i:%d symbol->height %d != %d \n " , i , symbol - > height , data [ i ] . expected_height ) ;
assert_equal ( symbol - > rows , data [ i ] . expected_rows , " i:%d symbol->rows %d != %d \n " , i , symbol - > rows , data [ i ] . expected_rows ) ;
assert_equal ( symbol - > width , data [ i ] . expected_width , " i:%d symbol->width %d != %d \n " , i , symbol - > width , data [ i ] . expected_width ) ;
ret = ZBarcode_Buffer_Vector ( symbol , 0 ) ;
assert_equal ( ret , data [ i ] . ret_vector , " i:%d ZBarcode_Buffer_Vector ret %d != %d \n " , i , ret , data [ i ] . ret_vector ) ;
}
ZBarcode_Delete ( symbol ) ;
}
testFinish ( ) ;
}
2019-10-14 09:49:15 +01:00
int main ( )
{
test_koreapost ( ) ;
2019-11-27 16:16:14 +00:00
test_japanpost ( ) ;
2019-10-14 09:49:15 +01:00
testReport ( ) ;
return 0 ;
}