예제 #1
0
def test_calc_dia(class_objects):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    beta_z = np.array([1, 2, 3])
    expected = (drizzle.gamma(3) / drizzle.gamma(7) * 3.67**4 / beta_z)**(1 /
                                                                          4)
    testing.assert_array_almost_equal(obj._calc_dia(beta_z), expected)
예제 #2
0
def test_calc_beta_z_ratio(class_objects):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    obj._data.beta = np.array([[1, 1, 2], [1, 1, 3]])
    obj._data.z = np.array([[2, 2, 1], [1, 1, 1]])
    expected = 2 / np.pi * obj._data.beta / obj._data.z
    testing.assert_array_almost_equal(obj._calc_beta_z_ratio(), expected)
예제 #3
0
def test_is_converged(class_objects):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    ind = (1, 2)
    dia_init = np.array([[1, 3, 2], [3, 1, 2]])
    dia = 1
    expected = False
    assert obj._is_converged(ind, dia, dia_init) == expected
예제 #4
0
def test_update_result_tables(class_objects, key, value):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    ind = (0, 1)
    dia = 10
    lut = (0, 1)
    obj._update_result_tables(ind, dia, lut)
    testing.assert_almost_equal(obj.params[key][ind], value)
예제 #5
0
def test_find_lut_indices(class_objects):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    ind = (1, 2)
    dia_init = np.array([[1, 3, 2], [3, 1, 2]])
    n_dia = 1
    n_width = 2
    ind_d = bisect_left(obj._data.mie['Do'], dia_init[ind], hi=n_dia - 1)
    ind_w = bisect_left(obj._width_lut[:, ind_d], -obj._width_ht[ind], hi=n_width - 1)
    compare = (ind_w, ind_d)
    testing.assert_almost_equal(obj._find_lut_indices
                                (ind, dia_init, n_dia, n_width), compare)
예제 #6
0
def params_objects(class_objects):
    d_source, d_class, s_width = class_objects
    return drizzle.DrizzleSolver(d_source, d_class, s_width)
예제 #7
0
def test_init_variables(class_objects, key):
    d_source, d_class, s_width = class_objects
    obj = drizzle.DrizzleSolver(d_source, d_class, s_width)
    result, x = obj._init_variables()
    assert key in result.keys()