@@ -807,6 +807,121 @@ START_TEST(test_file_ct_brain_single)
807807}
808808END_TEST
809809
810+
811+ START_TEST (test_encapsulated_empty_BOT_1_to_1 )
812+ {
813+ char * file_path = fixture_path ("data/test_files/generated_encapsulated_empty_bot_1_to_1.dcm" );
814+ DcmFilehandle * filehandle =
815+ dcm_filehandle_create_from_file (NULL , file_path );
816+ free ( file_path );
817+ ck_assert_ptr_nonnull (filehandle );
818+ DcmFrame * frame = dcm_filehandle_read_frame (NULL ,
819+ filehandle ,
820+ 1 );
821+ ck_assert_ptr_nonnull ( frame );
822+ uint32_t frame_length = dcm_frame_get_length ( frame );
823+ ck_assert_uint_eq ( frame_length , 8 );
824+ const char * data = dcm_frame_get_value ( frame );
825+ const char expected_data [] = { 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 };
826+ ck_assert_mem_eq ( expected_data , data , sizeof (expected_data ) );
827+ }
828+ END_TEST
829+
830+
831+ START_TEST (test_encapsulated_empty_BOT_2_to_1 )
832+ {
833+ char * file_path = fixture_path ("data/test_files/generated_encapsulated_empty_bot_2_to_1.dcm" );
834+ DcmFilehandle * filehandle =
835+ dcm_filehandle_create_from_file (NULL , file_path );
836+ free ( file_path );
837+ ck_assert_ptr_nonnull (filehandle );
838+ DcmFrame * frame = dcm_filehandle_read_frame (NULL ,
839+ filehandle ,
840+ 1 );
841+ ck_assert_ptr_nonnull ( frame );
842+ uint32_t frame_length = dcm_frame_get_length ( frame );
843+ ck_assert_uint_eq ( frame_length , 16 );
844+ const char * data = dcm_frame_get_value ( frame );
845+ const char expected_data [] = { 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 , 0x8 ,
846+ 0x9 , 0xa , 0xb , 0xc , 0xd , 0xe , 0xf };
847+ ck_assert_mem_eq ( expected_data , data , sizeof (expected_data ) );
848+ }
849+ END_TEST
850+
851+
852+ START_TEST (test_encapsulated_defined_BOT_1_to_1 )
853+ {
854+ char * file_path = fixture_path ("data/test_files/generated_encapsulated_defined_bot_1_to_1.dcm" );
855+ DcmFilehandle * filehandle =
856+ dcm_filehandle_create_from_file (NULL , file_path );
857+ free ( file_path );
858+ ck_assert_ptr_nonnull (filehandle );
859+ DcmFrame * frame = dcm_filehandle_read_frame (NULL ,
860+ filehandle ,
861+ 1 );
862+ ck_assert_ptr_nonnull ( frame );
863+ uint32_t frame_length = dcm_frame_get_length ( frame );
864+ ck_assert_uint_eq ( frame_length , 8 );
865+ const char * data = dcm_frame_get_value ( frame );
866+ const char expected_data [] =
867+ { 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 };
868+ ck_assert_mem_eq ( expected_data , data , sizeof (expected_data ) );
869+ }
870+ END_TEST
871+
872+
873+ START_TEST (test_encapsulated_defined_BOT_2_to_1 )
874+ {
875+ char * file_path = fixture_path ("data/test_files/generated_encapsulated_defined_bot_2_to_1.dcm" );
876+ DcmFilehandle * filehandle =
877+ dcm_filehandle_create_from_file (NULL , file_path );
878+ free ( file_path );
879+ ck_assert_ptr_nonnull (filehandle );
880+ DcmFrame * frame = dcm_filehandle_read_frame (NULL ,
881+ filehandle ,
882+ 1 );
883+ ck_assert_ptr_nonnull ( frame );
884+ uint32_t frame_length = dcm_frame_get_length ( frame );
885+ ck_assert_uint_eq ( frame_length , 16 );
886+ const char * data = dcm_frame_get_value ( frame );
887+ const char expected_data [] =
888+ { 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 , 0x8 , 0x9 , 0xa , 0xb , 0xc , 0xd , 0xe , 0xf };
889+ ck_assert_mem_eq ( expected_data , data , sizeof (expected_data ) );
890+ }
891+ END_TEST
892+
893+
894+ START_TEST (test_encapsulated_defined_BOT_2_to_2 )
895+ {
896+ char * file_path = fixture_path ("data/test_files/generated_encapsulated_defined_bot_2_to_2.dcm" );
897+ DcmFilehandle * filehandle =
898+ dcm_filehandle_create_from_file (NULL , file_path );
899+ free ( file_path );
900+ ck_assert_ptr_nonnull (filehandle );
901+ DcmFrame * frame = dcm_filehandle_read_frame (NULL ,
902+ filehandle ,
903+ 1 );
904+ ck_assert_ptr_nonnull ( frame );
905+ uint32_t frame_length = dcm_frame_get_length ( frame );
906+ ck_assert_uint_eq ( frame_length , 8 );
907+ const char * data1 = dcm_frame_get_value ( frame );
908+ const char expected_data1 [] =
909+ { 0x0 , 0x1 , 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 };
910+ ck_assert_mem_eq ( expected_data1 , data1 , sizeof (expected_data1 ) );
911+ /*frame = dcm_filehandle_read_frame(NULL,
912+ filehandle,
913+ 2);
914+ ck_assert_ptr_nonnull( frame );
915+ frame_length = dcm_frame_get_length( frame );
916+ ck_assert_uint_eq( frame_length, 8 );
917+ const char* data2 = dcm_frame_get_value( frame );
918+ const char expected_data2[] =
919+ { 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf };
920+ ck_assert_mem_eq( expected_data2, data2, sizeof(expected_data2) );*/
921+ }
922+ END_TEST
923+
924+
810925static Suite * create_main_suite (void )
811926{
812927 Suite * suite = suite_create ("main" );
@@ -896,13 +1011,40 @@ static Suite *create_single_frame_suite(void)
8961011 return suite ;
8971012}
8981013
1014+ static Suite * create_parse_suite (void )
1015+ {
1016+ Suite * suite = suite_create ("parse" );
1017+
1018+ TCase * encapsulated_case1 = tcase_create ("empty_BOT_1_to_1" );
1019+ tcase_add_test (encapsulated_case1 , test_encapsulated_empty_BOT_1_to_1 );
1020+ suite_add_tcase (suite , encapsulated_case1 );
1021+
1022+ TCase * encapsulated_case2 = tcase_create ("empty_BOT_2_to_1" );
1023+ tcase_add_test (encapsulated_case2 , test_encapsulated_empty_BOT_2_to_1 );
1024+ suite_add_tcase (suite , encapsulated_case2 );
1025+
1026+ TCase * encapsulated_case3 = tcase_create ("defined_BOT_1_to_1" );
1027+ tcase_add_test (encapsulated_case3 , test_encapsulated_defined_BOT_1_to_1 );
1028+ suite_add_tcase (suite , encapsulated_case3 );
1029+
1030+ TCase * encapsulated_case4 = tcase_create ("defined_BOT_2_to_1" );
1031+ tcase_add_test (encapsulated_case4 , test_encapsulated_defined_BOT_2_to_1 );
1032+ suite_add_tcase (suite , encapsulated_case4 );
1033+
1034+ TCase * encapsulated_case5 = tcase_create ("defined_BOT_2_to_2" );
1035+ tcase_add_test (encapsulated_case5 , test_encapsulated_defined_BOT_2_to_2 );
1036+ suite_add_tcase (suite , encapsulated_case5 );
1037+
1038+ return suite ;
1039+ }
8991040
9001041int main (void )
9011042{
9021043 SRunner * runner = srunner_create (create_main_suite ());
9031044 srunner_add_suite (runner , create_data_suite ());
9041045 srunner_add_suite (runner , create_file_suite ());
9051046 srunner_add_suite (runner , create_single_frame_suite ());
1047+ srunner_add_suite (runner , create_parse_suite ());
9061048 srunner_run_all (runner , CK_VERBOSE );
9071049 int number_failed = srunner_ntests_failed (runner );
9081050 srunner_free (runner );
0 commit comments