Skip to content

Commit ac71ff4

Browse files
committed
functional tests for encapsulated pixel data handling
1 parent ab8b9f0 commit ac71ff4

6 files changed

+142
-0
lines changed
402 Bytes
Binary file not shown.
418 Bytes
Binary file not shown.
422 Bytes
Binary file not shown.
398 Bytes
Binary file not shown.
414 Bytes
Binary file not shown.

tests/check_dicom.c

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,121 @@ START_TEST(test_file_ct_brain_single)
807807
}
808808
END_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+
810925
static 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

9001041
int 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

Comments
 (0)