Пример #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'"))
Пример #2
0
    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"))
Пример #3
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)
Пример #4
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)
Пример #5
0
    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"))
Пример #6
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'"))