Skip to content

Commit a4db07e

Browse files
add single-frame test suite stub
1 parent 2d6ed03 commit a4db07e

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tests/check_dicom.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -767,6 +767,42 @@ START_TEST(test_file_sm_image_file_meta_memory)
767767
}
768768
END_TEST
769769

770+
START_TEST(test_file_ct_brain_single)
771+
{
772+
const uint32_t frame_number = 1;
773+
774+
char *file_path = fixture_path("data/test_files/ct_brain_single.dcm");
775+
DcmFilehandle *filehandle =
776+
dcm_filehandle_create_from_file(NULL, file_path);
777+
free(file_path);
778+
ck_assert_ptr_nonnull(filehandle);
779+
780+
const DcmDataSet *metadata =
781+
dcm_filehandle_get_metadata_subset(NULL, filehandle);
782+
ck_assert_ptr_nonnull(metadata);
783+
784+
ck_assert_int_ne(dcm_filehandle_prepare_read_frame(NULL, filehandle), 0);
785+
786+
DcmFrame *frame = dcm_filehandle_read_frame(NULL,
787+
filehandle,
788+
frame_number);
789+
ck_assert_uint_eq(dcm_frame_get_number(frame), frame_number);
790+
ck_assert_uint_eq(dcm_frame_get_rows(frame), 10);
791+
ck_assert_uint_eq(dcm_frame_get_columns(frame), 10);
792+
ck_assert_uint_eq(dcm_frame_get_samples_per_pixel(frame), 3);
793+
ck_assert_uint_eq(dcm_frame_get_bits_allocated(frame), 8);
794+
ck_assert_uint_eq(dcm_frame_get_bits_stored(frame), 8);
795+
ck_assert_uint_eq(dcm_frame_get_high_bit(frame), 7);
796+
ck_assert_uint_eq(dcm_frame_get_pixel_representation(frame), 0);
797+
ck_assert_uint_eq(dcm_frame_get_planar_configuration(frame), 0);
798+
ck_assert_str_eq(dcm_frame_get_photometric_interpretation(frame), "RGB");
799+
ck_assert_str_eq(dcm_frame_get_transfer_syntax_uid(frame),
800+
"1.2.840.10008.1.2.1");
801+
802+
dcm_frame_destroy(frame);
803+
dcm_filehandle_destroy(filehandle);
804+
}
805+
END_TEST
770806

771807
static Suite *create_main_suite(void)
772808
{
@@ -846,12 +882,24 @@ static Suite *create_file_suite(void)
846882
return suite;
847883
}
848884

885+
static Suite *create_single_frame_suite(void)
886+
{
887+
Suite *suite = suite_create("single_frame");
888+
889+
TCase *frame_case = tcase_create("ct_brain_frame");
890+
tcase_add_test(frame_case, test_file_ct_brain_single);
891+
suite_add_tcase(suite, frame_case);
892+
893+
return suite;
894+
}
895+
849896

850897
int main(void)
851898
{
852899
SRunner *runner = srunner_create(create_main_suite());
853900
srunner_add_suite(runner, create_data_suite());
854901
srunner_add_suite(runner, create_file_suite());
902+
srunner_add_suite(runner, create_single_frame_suite());
855903
srunner_run_all(runner, CK_VERBOSE);
856904
int number_failed = srunner_ntests_failed(runner);
857905
srunner_free(runner);

0 commit comments

Comments
 (0)