def test_support(): sup_radius = 20 a, diff_v = make_synthetic_data() sup = generate_box_support(sup_radius, diff_v.shape) shape_list = [[100, 100], [100, 100, 100]] for v in shape_list: yield _box_support_area, sup_radius, v for v in shape_list: yield _disk_support_area, sup_radius, v
def test_cdi_plotter(): a, diff_v = make_synthetic_data() total_n = 10 sup_radius = 20 # inital phase and support init_phase = generate_random_phase_field(diff_v) sup = generate_box_support(sup_radius, diff_v.shape) # assign wrong plot_function outv, error_d = cdi_recon(diff_v, init_phase, sup, sw_flag=True, n_iterations=total_n, sw_step=2, cb_function=10)
def test_recon(): a, diff_v = make_synthetic_data() total_n = 10 sup_radius = 20 # inital phase and support init_phase = generate_random_phase_field(diff_v) sup = generate_box_support(sup_radius, diff_v.shape) # run reconstruction outv1, error_dict = cdi_recon(diff_v, init_phase, sup, sw_flag=False, n_iterations=total_n, sw_step=2) outv1 = np.abs(outv1) outv2, error_dict = cdi_recon(diff_v, init_phase, sup, pi_modulus_flag='Real', sw_flag=True, n_iterations=total_n, sw_step=2) outv2 = np.abs(outv2) # compare the area of supports assert_array_equal(outv1.shape, outv2.shape)
def _box_support_area(sup_radius, shape_v): sup = generate_box_support(sup_radius, shape_v) new_sup = sup[sup != 0] assert_array_equal(new_sup.shape, (2*sup_radius)**len(shape_v))