def test_exception_l_frac_len(self, l): with raises(ValueError): mass.split_element(3, 5, l_frac=(.2, )) l.check(('gnome.array_types.ArrayTypeDivideOnSplit', 'ERROR', "in split_element() len(l_frac) must equal 'num'"))
def test_exception_sum_l_frac_1(self, l): with raises(ValueError): mass.split_element(3, 5, l_frac=(.2, .1, .2)) l.check(('gnome.array_types.ArrayTypeDivideOnSplit', 'ERROR', "sum 'l_frac' must be 1.0"))
def test_split_element_divide(self, num, l_frac): ''' test mass/mass_components being split correctly ''' num_les = 5 m_array = mass.initialize(num_les) m_array[:] = 10 mc = mass_components.initialize(num_les, (4, ), np.asarray([0.2, 0.2, 0.4, 0.2]) * 10) # split element 3 into 2 elements ix = 3 m_split = mass.split_element(num, m_array[ix], l_frac) new_m_array = self._replace_le_after_split(m_array, ix, m_split) mc_split = mass_components.split_element(num, mc[ix], l_frac) if l_frac is None: assert np.all(mc_split[0] == mc_split) else: for i in xrange(len(mc_split)): # check l_frac is correctly applied assert np.allclose(mc_split[i], l_frac[i] * mc[ix]) assert np.allclose(mc_split.sum(0), mc[ix]) new_mc_array = self._replace_le_after_split(mc, ix, mc_split) assert np.allclose(new_mc_array.sum(1), new_m_array)
def test_split_element_divide(self, num, l_frac): ''' test mass/mass_components being split correctly ''' num_les = 5 m_array = mass.initialize(num_les) m_array[:] = 10 mc = mass_components.initialize(num_les, (4,), np.asarray([0.2, 0.2, 0.4, 0.2])*10) # split element 3 into 2 elements ix = 3 m_split = mass.split_element(num, m_array[ix], l_frac) new_m_array = self._replace_le_after_split(m_array, ix, m_split) mc_split = mass_components.split_element(num, mc[ix], l_frac) if l_frac is None: assert np.all(mc_split[0] == mc_split) else: for i in xrange(len(mc_split)): # check l_frac is correctly applied assert np.allclose(mc_split[i], l_frac[i] * mc[ix]) assert np.allclose(mc_split.sum(0), mc[ix]) new_mc_array = self._replace_le_after_split(mc, ix, mc_split) assert np.allclose(new_mc_array.sum(1), new_m_array)
def test_exception_sum_l_frac_1(self, l): with raises(ValueError): mass.split_element(3, 5, l_frac=(.2, .1, .2)) l.check(('gnome.array_types.ArrayTypeDivideOnSplit', 'ERROR', "sum 'l_frac' must be 1.0"))
def test_exception_l_frac_len(self, l): with raises(ValueError): mass.split_element(3, 5, l_frac=(.2, )) l.check(('gnome.array_types.ArrayTypeDivideOnSplit', 'ERROR', "in split_element() len(l_frac) must equal 'num'"))