def test_calc_lwf(class_objects, params_objects): d_source, d_class, s_width = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) lwc_in = np.array([[0.001, 0.001, 0.002], [0.003, 0.002, 0.001]]) expected = np.array([[0.001, 0.005508, 0.011016], [0.016524, 0.011016, 0.001]]) testing.assert_array_almost_equal(obj._calc_lwf(lwc_in), expected)
def test_calc_v_air(class_objects, params_objects): d_source, d_class, s_width = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) d_v = np.array([[2.0, 2.0, 4.0], [1.0, 3.0, 5.0]]) obj._ind_drizzle = (np.array([0, 1]), np.array([1, 2])) expected = np.array([[-2.0, 0.0, -4.0], [-1.0, -3.0, -2.0]]) testing.assert_array_almost_equal(obj._calc_v_air(d_v), expected)
def test_calc_lwc(class_objects, params_objects): d_source, _, _ = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) dia, mu, s = [obj._params.get(key) for key in ("Do", "mu", "S")] gamma_ratio = drizzle.gamma(4 + mu) / drizzle.gamma(3 + mu) / (3.67 + mu) expected = 1000 / 3 * obj._data.beta * s * dia * gamma_ratio testing.assert_array_almost_equal(obj._calc_lwc(), expected)
def test_calc_density(class_objects, params_objects): d_source, _, _ = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) obj._data.z = np.array([[1, 1, 1], [1, 1, 1]]) a = 3.67**6 / 1**6 expected = np.array([[0.0, a, a], [a, a, 0.0]]) testing.assert_array_almost_equal(obj._calc_density(), expected)
def test_find_indices(class_objects, params_objects): d_source, d_class, s_width = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) obj._params["Do"] = np.array([[0.0, 1.0, 1.0], [1.0, 1.0, 0.0]]) x, y = obj._find_indices() expected = (np.array([0, 0, 1, 1]), np.array([1, 2, 0, 1])) testing.assert_array_almost_equal(x, expected)
def test_calc_fall_velocity(class_objects, params_objects): # TODO: fix this d_source, d_class, s_width = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) compare = np.array([[0, -7.11002091, -7.11002091], [-7.11002091, -7.11002091, 0]]) testing.assert_array_almost_equal(obj._calc_fall_velocity(), compare)
def result(class_objects, params_objects): d_source, d_class, s_width = class_objects errors = get_drizzle_error(d_source, params_objects) cal_products = drizzle.DrizzleProducts(d_source, params_objects) return {**params_objects.params, **cal_products.derived_products, **errors}
def test_calc_derived_products(class_objects, params_objects, key): d_source, d_class, s_width = class_objects obj = drizzle.DrizzleProducts(d_source, params_objects) dictio = obj._calc_derived_products() assert key in dictio.keys()