Пример #1
0
 def increment(self, v):
     if v >= 0:
         self._increment = v
         self.step = alphas(v)
     else:
         self._increment = -1
         self.step = ''
Пример #2
0
    def test_a_zz(self):
        ints = range(26 + 26**2)
        ass = [alphas(i) for i in ints]

        seeds = string.ascii_uppercase
        ALPHAS = [a for a in seeds
                  ] + ['{}{}'.format(a, b) for a in seeds for b in seeds]
        self.assertListEqual(ass, ALPHAS)
Пример #3
0
    def _add_level(self):
        irrad = self.irradiation
        db = self.db

        irrad = db.get_irradiation(irrad)
        if irrad.levels:
            level = irrad.levels[-1]

            self.z = level.z or 0

            if level.holder:
                self.selected_tray = next(
                    (t for t in self.trays if t == level.holder), '')

            nind = alpha_to_int(level.name) + 1
            self.name = alphas(nind)

        av = AddView(model=self)
        info = av.edit_traits()
        while 1:
            if info.result:
                for attr, msg in (
                    ('name',
                     'No name enter for this level. Would you like to enter one?'
                     ),
                    ('selected_production',
                     'No Production Ratios selected for this level. Would you like to select one?'
                     ),
                    ('selected_tray',
                     'No tray selected for this level. Would like to select one?'
                     )):
                    info = self._check_attr_set(av, attr, msg)
                    if info == 'break':
                        break
                    elif info is not None:
                        continue

                if not next(
                    (li for li in irrad.levels if li.name == self.name), None):

                    if self._save_level():
                        return self.name
                    else:
                        break
                else:
                    self.warning_dialog(
                        'Level {} already exists for Irradiation {}'.format(
                            self.name, self.irradiation))
            else:
                break
Пример #4
0
    def make_equation(self):
        """
            y=Ax+B
            y=Ax2+Bx+C
        """
        n = len(self.coefficients) - 1
        constant = alphas(n)
        ps = []
        for i in range(n):
            a = alphas(i)

            e = n - i
            if e > 1:
                a = '{}x{}'.format(a, e)
            else:
                a = '{}x'.format(a)
            ps.append(a)

        fit = self.fit
        eq = '+'.join(ps)
        s = '{}({})    y={}+{}'.format(fit, self.error_calc_type or 'CI', eq,
                                       constant)
        return s
Пример #5
0
    def tostring(self, sig_figs=5):

        cs = self.coefficients[::-1]
        ce = self.coefficient_errors[::-1]

        coeffs = []
        for i, (ci, ei) in enumerate(zip(cs, ce)):
            pp = '({})'.format(self.format_percent_error(ci, ei))
            fmt = '{{:0.{}e}}' if abs(ci) < math.pow(
                10, -sig_figs) else '{{:0.{}f}}'
            ci = fmt.format(sig_figs).format(ci)

            fmt = '{{:0.{}e}}' if abs(ei) < math.pow(
                10, -sig_figs) else '{{:0.{}f}}'
            ei = fmt.format(sig_figs).format(ei)

            vfmt = u'{{}}= {{}} {} {{}} {{}}'.format(PLUSMINUS)
            coeffs.append(vfmt.format(alphas(i), ci, ei, pp))

        s = u', '.join(coeffs)
        return s
Пример #6
0
 def _get_step(self):
     return alphas(self._step)
Пример #7
0
def make_step(s):
    if isinstance(s, (float, int, int)):
        s = alphas(s)
    return s or ''
Пример #8
0
    def test_a(self):

        self.assertEqual(alphas(0), 'A')
Пример #9
0
 def test_reciprocal6(self):
     self.assertEqual(alphas(alpha_to_int('ZZZZ')), 'ZZZZ')
Пример #10
0
 def test_reciprocal5(self):
     self.assertEqual(alphas(alpha_to_int('AAA')), 'AAA')
Пример #11
0
 def test_reciprocal4(self):
     self.assertEqual(alphas(alpha_to_int('BA')), 'BA')
Пример #12
0
 def step(self):
     print(self.increment, alphas(self.increment))
     return alphas(self.increment)
Пример #13
0
 def test_ab(self):
     self.assertEqual(alphas(27), 'AB')
Пример #14
0
 def test_aa(self):
     self.assertEqual(alphas(26), 'AA')
Пример #15
0
 def test_z(self):
     self.assertEqual(alphas(25), 'Z')
 def _get_step(self):
     return alphas(self.step_id - 1)
 def _get_step_id_text(self):
     return alphas(self.item.step_id - 1)
Пример #18
0
    def _get_plateau_age(self):
        ans = self.analyses
        v, e = 0, 0
        self.plateau_steps = None
        self.plateau_steps_str = ''
        self.nsteps = 0
        self.plateau_mswd = 0
        self.plateau_mswd_valid = False

        if all((not isinstance(ai, InterpretedAgeGroup) for ai in ans)):
            if ans:
                ages = [ai.age for ai in ans]
                errors = [ai.age_err for ai in ans]

                k39 = [
                    nominal_value(ai.get_computed_value('k39')) for ai in ans
                ]

                options = {
                    'nsteps': self.plateau_nsteps,
                    'gas_fraction': self.plateau_gas_fraction,
                    'overlap_sigma': self.plateau_overlap_sigma,
                    'fixed_steps': self.fixed_steps
                }

                excludes = [i for i, ai in enumerate(ans) if ai.is_omitted()]
                args = calculate_plateau_age(ages,
                                             errors,
                                             k39,
                                             method=self.plateau_method,
                                             options=options,
                                             excludes=excludes)

                if args:
                    v, e, pidx = args
                    if pidx[0] == pidx[1]:
                        return
                    self.plateau_steps = pidx
                    self.plateau_steps_str = '{}-{}'.format(
                        alphas(pidx[0]), alphas(pidx[1]))

                    step_idxs = [
                        i for i in range(pidx[0], pidx[1] + 1)
                        if not ans[i].is_omitted()
                    ]
                    self.nsteps = len(step_idxs)

                    pages = array([ages[i] for i in step_idxs])
                    perrs = array([errors[i] for i in step_idxs])

                    mswd = calculate_mswd(pages, perrs)
                    self.plateau_mswd_valid = validate_mswd(mswd, self.nsteps)
                    self.plateau_mswd = mswd
                    if self.plateau_age_error_kind == SD:
                        e = array(pages).std()
                    else:
                        e = self._modify_error(v,
                                               e,
                                               self.plateau_age_error_kind,
                                               mswd=mswd)
                    if math.isnan(e):
                        e = 0

        a = ufloat(v, max(0, e))
        self._apply_j_err(a,
                          force=self.include_j_error_in_mean
                          or self.include_j_error_in_plateau)

        return a
Пример #19
0
 def test_reciprocal2(self):
     self.assertEqual(alphas(alpha_to_int('C')), 'C')