def test_GIVEN_pixel_grid_WHEN_recording_pixel_data_to_nxdetector_THEN_pixel_data_in_nexus_file_matches_pixel_data_in_pixel_grid_object( component, ): pixel_grid = PixelGrid( rows=5, columns=6, row_height=0.7, col_width=0.5, first_id=0, count_direction=CountDirection.COLUMN, initial_count_corner=Corner.BOTTOM_RIGHT, ) component.record_pixel_grid(pixel_grid) assert np.array_equal( component.get_field("x_pixel_offset"), get_x_offsets_from_pixel_grid(pixel_grid) ) assert np.array_equal( component.get_field("y_pixel_offset"), get_y_offsets_from_pixel_grid(pixel_grid) ) assert np.array_equal( component.get_field("z_pixel_offset"), get_z_offsets_from_pixel_grid(pixel_grid) ) assert np.array_equal( component.get_field("detector_number"), get_detector_ids_from_pixel_grid(pixel_grid), )
def test_GIVEN_detector_numbers_WHEN_calling_get_detector_number_information_THEN_expected_first_id_is_returned( pixel_options, pixel_grid ): pixel_grid.first_id = 4 detector_numbers = get_detector_ids_from_pixel_grid(pixel_grid) first_id, _, _ = pixel_options._get_detector_number_information(detector_numbers) assert first_id == pixel_grid.first_id
def test_GIVEN_one_by_one_pixel_grid_when_calling_offset_functions_THEN_offsets_and_pixel_id_are_scalars( pixel_grid, ): pixel_grid.rows = 1 pixel_grid.columns = 1 assert get_x_offsets_from_pixel_grid(pixel_grid) == 0 assert get_y_offsets_from_pixel_grid(pixel_grid) == 0 assert get_z_offsets_from_pixel_grid(pixel_grid) == 0 assert get_detector_ids_from_pixel_grid(pixel_grid) == pixel_grid.first_id
def test_GIVEN_column_of_pixels_WHEN_calling_get_detector_number_information_THEN_expected_start_counting_is_returned( pixel_options, pixel_grid ): pixel_options.columns = 1 detector_numbers = get_detector_ids_from_pixel_grid(pixel_grid) _, start_counting_text, _ = pixel_options._get_detector_number_information( detector_numbers ) assert start_counting_text in ["Top", "Bottom"]
def test_GIVEN_row_of_pixels_WHEN_calling_get_detector_number_information_THEN_expected_start_counting_is_returned( pixel_options, pixel_grid ): pixel_options.rows = 1 detector_numbers = get_detector_ids_from_pixel_grid(pixel_grid) _, start_counting_text, _ = pixel_options._get_detector_number_information( detector_numbers ) assert start_counting_text in ["Right", "Left"]
def record_pixel_grid(self, pixel_grid: PixelGrid): """ Records the pixel grid data to the NeXus file. :param pixel_grid: The PixelGrid created from the input provided to the Add/Edit Component Window. """ self.set_field("x_pixel_offset", get_x_offsets_from_pixel_grid(pixel_grid), "float64") self.set_field("y_pixel_offset", get_y_offsets_from_pixel_grid(pixel_grid), "float64") self.set_field("z_pixel_offset", get_z_offsets_from_pixel_grid(pixel_grid), "float64") self.set_field("detector_number", get_detector_ids_from_pixel_grid(pixel_grid), "int64")
def test_GIVEN_direction_and_initial_count_corner_WHEN_calling_pixel_grid_detector_ids_THEN_correct_grid_is_returned( pixel_grid, direction, corner): pixel_grid.rows = 2 pixel_grid.columns = 3 pixel_grid.count_direction = direction pixel_grid.initial_count_corner = corner pixel_grid.first_id = 2 assert np.array_equal( np.array(EXPECTED_DETECTOR_IDS[direction][corner]) + pixel_grid.first_id, get_detector_ids_from_pixel_grid(pixel_grid), )