def test_gridpoints_core_calc_exp(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with changed exponents""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays exp = [2, 1] result_array = lp.gridpoints_core_calc(data_arrays, exponents=exp) results_check = data_arrays[0] * data_arrays[0] * data_arrays[1] self.assertEqual(result_array.shape, results_check.shape) self.assertEqual(result_array[0, 2], results_check[0, 2]) np.testing.assert_array_almost_equal_nulp(result_array, results_check) exp = [2, .1] result_array = lp.gridpoints_core_calc(data_arrays, exponents=exp) results_check = data_arrays[0] * data_arrays[0] * (data_arrays[1]**.1) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_default_2(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with default exponents and offsets- 2 arrays""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays result_array = lp.gridpoints_core_calc(data_arrays) results_check = data_arrays[0] * data_arrays[1] self.assertEqual(result_array[0, 0], results_check[0, 0]) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_default_3(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with default exponents and offsets- 3 arrays""" data_arrays = data_arrays_demo(3) result_array = lp.gridpoints_core_calc(data_arrays) results_check = data_arrays[0] * data_arrays[1] * data_arrays[2] self.assertEqual(result_array.shape, results_check.shape) self.assertEqual(result_array[1, 1], results_check[1, 1]) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_offsets(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with changed offsets""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays offsets = [1, 10] result_array = lp.gridpoints_core_calc(data_arrays, offsets=offsets) results_check = (data_arrays[0] + 1) * (10 + data_arrays[1]) self.assertEqual(result_array.shape, results_check.shape) self.assertEqual(result_array[0, 2], results_check[0, 2]) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_rescale(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with rescaling (default exponents and offsets)""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays result_array = lp.gridpoints_core_calc(data_arrays, total_val_rescale=2.5) results_check = (data_arrays[0] * data_arrays[1]) * 2.5 / np.sum( data_arrays[0] * data_arrays[1]) self.assertAlmostEqual(result_array.sum(), 2.5) self.assertEqual(result_array[0, 1], results_check[0, 1]) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_offsets_exp_rescale(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with changed offsets and exponents and rescaling""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays offsets = [0.2, 3] exp = [.5, 1.7] tot = -7 result_array = lp.gridpoints_core_calc(data_arrays, offsets=offsets, exponents=exp, total_val_rescale=tot) results_check = np.array(data_arrays[0]+.2, dtype=float)**exp[0] * \ (np.array(data_arrays[1]+3., dtype=float)**exp[1]) results_check = results_check * tot / results_check.sum() self.assertEqual(result_array.shape, results_check.shape) self.assertAlmostEqual(result_array.sum(), tot) self.assertEqual(result_array[1, 2], results_check[1, 2]) np.testing.assert_array_almost_equal_nulp(result_array, results_check)
def test_gridpoints_core_calc_offsets_exp(self): """test function gridpoints_core_calc, i.e. core data combination on grid point level with changed offsets and exponents""" data_arrays = data_arrays_demo(2) # get list with 2 demo arrays offsets = [0, 10] exp = [2, 1] result_array = lp.gridpoints_core_calc(data_arrays, offsets=offsets, exponents=exp) results_check = (data_arrays[0]) * (data_arrays[0]) * (10 + data_arrays[1]) results_check2 = np.array([[0, 20, 80], [99, 176, 275]]) self.assertEqual(result_array.shape, results_check.shape) self.assertEqual(result_array[0, 2], results_check[0, 2]) np.testing.assert_array_almost_equal_nulp(result_array, results_check) self.assertEqual(result_array[1, 2], results_check2[1, 2]) np.testing.assert_array_almost_equal_nulp(result_array, results_check2)
def test_gridpoints_core_calc_input_errors(self): """test for ValueErrors and TypeErrors due to wrong input to function gridpoints_core_calc""" data = data_arrays_demo(2) # negative offset: with self.assertRaises(ValueError): lp.gridpoints_core_calc(data, offsets=[2, -1]) # negative exponents: with self.assertRaises(ValueError): lp.gridpoints_core_calc(data, exponents=[2, -1]) # different shapes: with self.assertRaises(ValueError): lp.gridpoints_core_calc(data_arrays_demo(4)) # wrong format: with self.assertRaises(TypeError): lp.gridpoints_core_calc(data, exponents=['a', 'b']) data.append('hello i am a string') with self.assertRaises(ValueError): lp.gridpoints_core_calc(data) with self.assertRaises(TypeError): lp.gridpoints_core_calc(777)