def test_fitToData(self): """ Test the PDepArrhenius.fitToData() method. """ Tdata = numpy.array([300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500], numpy.float) Pdata = numpy.array([1e4,3e4,1e5,3e5,1e6], numpy.float) kdata = numpy.zeros([len(Tdata),len(Pdata)], numpy.float) for t in range(len(Tdata)): for p in range(len(Pdata)): kdata[t,p] = self.kinetics.getRateCoefficient(Tdata[t], Pdata[p]) kinetics = PDepArrhenius().fitToData(Tdata, Pdata, kdata, kunits="s^-1") for t in range(len(Tdata)): for p in range(len(Pdata)): self.assertAlmostEqual(kinetics.getRateCoefficient(Tdata[t], Pdata[p]), kdata[t,p], delta=1e-6*kdata[t,p])
def setUp(self): """ A function run before each unit test in this class. """ self.arrhenius0 = Arrhenius( A=(1.0e6, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.arrhenius1 = Arrhenius( A=(1.0e12, "s^-1"), n=1.0, Ea=(20.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.pressures = numpy.array([0.1, 10.0]) self.arrhenius = [self.arrhenius0, self.arrhenius1] self.Tmin = 300.0 self.Tmax = 2000.0 self.Pmin = 0.1 self.Pmax = 10.0 self.comment = """This data is completely made up""" self.kinetics = PDepArrhenius( pressures=(self.pressures, "bar"), arrhenius=self.arrhenius, Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, )
def test_fitToData(self): """ Test the PDepArrhenius.fitToData() method. """ Tdata = numpy.array([ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ], numpy.float) Pdata = numpy.array([1e4, 3e4, 1e5, 3e5, 1e6], numpy.float) kdata = numpy.zeros([len(Tdata), len(Pdata)], numpy.float) for t in range(len(Tdata)): for p in range(len(Pdata)): kdata[t, p] = self.kinetics.getRateCoefficient( Tdata[t], Pdata[p]) kinetics = PDepArrhenius().fitToData(Tdata, Pdata, kdata, kunits="s^-1") for t in range(len(Tdata)): for p in range(len(Pdata)): self.assertAlmostEqual(kinetics.getRateCoefficient( Tdata[t], Pdata[p]), kdata[t, p], delta=1e-6 * kdata[t, p])
def get_arrhenius_from_param(params, settings, arrh_type='Arrhenius'): """ Get Arrhenius object given params and settings Args: params (dict) : A dictionary contains the information about A factor, n, Ea, T0 and multiplier settings (dict): A dictionary contains the information about variable units, T and P range, description arrh_type (str): The type of Arrhenius object to be added, supporting Arrhenius, MultiArrhenius, and PdepArrehnius Returns: (Arrhenius object): The Arrhenius object generated """ args = {} if 'Tmin' in settings and settings['Tmin']: args['Tmin'] = (settings['Tmin'], settings['T_unit']) if 'Tmax' in settings and settings['Tmax']: args['Tmax'] = (settings['Tmax'], settings['T_unit']) if 'Pmin' in settings and settings['Pmin']: args['Pmin'] = (settings['Pmin'], settings['P_unit']) if 'Pmax' in settings and settings['Pmax']: args['Pmax'] = (settings['Pmax'], settings['P_unit']) if 'comment' in settings and settings['comment']: args['comment'] = settings['comment'] if arrh_type == 'Arrhenius': args['A'] = (params['A'], settings['A_unit']) args['n'] = params['n'] args['Ea'] = (params['Ea'], settings['E_unit']) if 'T0' in params and params['T0']: args['T0'] = (params['T0'], settings['T_unit']) if 'uncertainty' in params and params['uncertainty']: args['uncertainty'] = params['uncertainty'] return Arrhenius(**args) elif arrh_type == 'MultiArrhenius': args['arrhenius'] = params['arrhenius'] return MultiArrhenius(**args) elif arrh_type == 'PdepArrhenius': args['arrhenius'] = params['arrhenius'] args['pressures'] = (params['pressures'], settings['P_unit']) if 'highPlimit' and params['highPlimit']: args['highPlimit'] = params['highPlimit'] return PDepArrhenius(**args)
def setUp(self): """ A function run before each unit test in this class. """ self.Tmin = 350. self.Tmax = 1500. self.Pmin = 1e-1 self.Pmax = 1e1 self.pressures = numpy.array([1e-1, 1e1]) self.comment = 'CH3 + C2H6 <=> CH4 + C2H5 (Baulch 2005)' self.arrhenius = [ PDepArrhenius( pressures=(self.pressures, "bar"), arrhenius=[ Arrhenius( A=(9.3e-16, "cm^3/(molecule*s)"), n=0.0, Ea=(4740 * constants.R * 0.001, "kJ/mol"), T0=(1, "K"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), comment=self.comment, ), Arrhenius( A=(9.3e-14, "cm^3/(molecule*s)"), n=0.0, Ea=(4740 * constants.R * 0.001, "kJ/mol"), T0=(1, "K"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), comment=self.comment, ), ], Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, ), PDepArrhenius( pressures=(self.pressures, "bar"), arrhenius=[ Arrhenius( A=(1.4e-11, "cm^3/(molecule*s)"), n=0.0, Ea=(11200 * constants.R * 0.001, "kJ/mol"), T0=(1, "K"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), comment=self.comment, ), Arrhenius( A=(1.4e-9, "cm^3/(molecule*s)"), n=0.0, Ea=(11200 * constants.R * 0.001, "kJ/mol"), T0=(1, "K"), Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), comment=self.comment, ), ], Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, ), ] self.kinetics = MultiPDepArrhenius( arrhenius=self.arrhenius, Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, )
class TestPDepArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`PDepArrhenius` class. """ def setUp(self): """ A function run before each unit test in this class. """ self.arrhenius0 = Arrhenius( A=(1.0e6, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.arrhenius1 = Arrhenius( A=(1.0e12, "s^-1"), n=1.0, Ea=(20.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.pressures = numpy.array([0.1, 10.0]) self.arrhenius = [self.arrhenius0, self.arrhenius1] self.Tmin = 300.0 self.Tmax = 2000.0 self.Pmin = 0.1 self.Pmax = 10.0 self.comment = """This data is completely made up""" self.kinetics = PDepArrhenius( pressures=(self.pressures, "bar"), arrhenius=self.arrhenius, Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, ) def test_pressures(self): """ Test that the PDepArrhenius pressures property was properly set. """ self.assertEqual(len(self.kinetics.pressures.value_si), 2) for i in range(2): self.assertAlmostEqual(self.kinetics.pressures.value_si[i] * 1e-5, self.pressures[i], 4) def test_arrhenius(self): """ Test that the PDepArrhenius arrhenius property was properly set. """ self.assertEqual(len(self.kinetics.arrhenius), 2) for i in range(2): self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, self.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, self.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, self.arrhenius[i].n.value, 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, self.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, self.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, self.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, self.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmin.value, self.arrhenius[i].Tmin.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Tmin.units, self.arrhenius[i].Tmin.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmax.value, self.arrhenius[i].Tmax.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Tmax.units, self.arrhenius[i].Tmax.units) self.assertEqual(self.kinetics.arrhenius[i].comment, self.arrhenius[i].comment) def test_Tmin(self): """ Test that the PDepArrhenius Tmin property was properly set. """ self.assertAlmostEqual(self.kinetics.Tmin.value_si, self.Tmin, 6) def test_Tmax(self): """ Test that the PDepArrhenius Tmax property was properly set. """ self.assertAlmostEqual(self.kinetics.Tmax.value_si, self.Tmax, 6) def test_Pmin(self): """ Test that the PDepArrhenius Pmin property was properly set. """ self.assertAlmostEqual(self.kinetics.Pmin.value_si * 1e-5, self.Pmin, 6) def test_Pmax(self): """ Test that the PDepArrhenius Pmax property was properly set. """ self.assertAlmostEqual(self.kinetics.Pmax.value_si * 1e-5, self.Pmax, 6) def test_comment(self): """ Test that the PDepArrhenius comment property was properly set. """ self.assertEqual(self.kinetics.comment, self.comment) def test_isPressureDependent(self): """ Test the PDepArrhenius.isPressureDependent() method. """ self.assertTrue(self.kinetics.isPressureDependent()) def test_getRateCoefficient(self): """ Test the PDepArrhenius.getRateCoefficient() method. """ P = 1e4 for T in [ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = self.arrhenius0.getRateCoefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e6 for T in [ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = self.arrhenius1.getRateCoefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e5 for T in [ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = math.sqrt( self.arrhenius0.getRateCoefficient(T) * self.arrhenius1.getRateCoefficient(T)) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) def test_fitToData(self): """ Test the PDepArrhenius.fitToData() method. """ Tdata = numpy.array([ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ], numpy.float) Pdata = numpy.array([1e4, 3e4, 1e5, 3e5, 1e6], numpy.float) kdata = numpy.zeros([len(Tdata), len(Pdata)], numpy.float) for t in range(len(Tdata)): for p in range(len(Pdata)): kdata[t, p] = self.kinetics.getRateCoefficient( Tdata[t], Pdata[p]) kinetics = PDepArrhenius().fitToData(Tdata, Pdata, kdata, kunits="s^-1") for t in range(len(Tdata)): for p in range(len(Pdata)): self.assertAlmostEqual(kinetics.getRateCoefficient( Tdata[t], Pdata[p]), kdata[t, p], delta=1e-6 * kdata[t, p]) def test_pickle(self): """ Test that a PDepArrhenius object can be successfully pickled and unpickled with no loss of information. """ import cPickle kinetics = cPickle.loads(cPickle.dumps(self.kinetics, -1)) Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) self.assertEqual(len(kinetics.pressures.value), Narrh) self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) self.assertEqual(self.kinetics.Tmax.units, kinetics.Tmax.units) self.assertAlmostEqual(self.kinetics.Pmin.value, kinetics.Pmin.value, 4) self.assertEqual(self.kinetics.Pmin.units, kinetics.Pmin.units) self.assertAlmostEqual(self.kinetics.Pmax.value, kinetics.Pmax.value, 4) self.assertEqual(self.kinetics.Pmax.units, kinetics.Pmax.units) self.assertEqual(self.kinetics.comment, kinetics.comment) def test_repr(self): """ Test that a PDepArrhenius object can be successfully reconstructed from its repr() output with no loss of information. """ kinetics = None exec('kinetics = {0!r}'.format(self.kinetics)) Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) self.assertEqual(len(kinetics.pressures.value), Narrh) self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) self.assertEqual(self.kinetics.Tmax.units, kinetics.Tmax.units) self.assertAlmostEqual(self.kinetics.Pmin.value, kinetics.Pmin.value, 4) self.assertEqual(self.kinetics.Pmin.units, kinetics.Pmin.units) self.assertAlmostEqual(self.kinetics.Pmax.value, kinetics.Pmax.value, 4) self.assertEqual(self.kinetics.Pmax.units, kinetics.Pmax.units) self.assertEqual(self.kinetics.comment, kinetics.comment) def test_changeRate(self): """ Test the PDepArrhenius.changeRate() method. """ Tlist = numpy.array([ 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500 ]) k0list = numpy.array( [self.kinetics.getRateCoefficient(T, 1e5) for T in Tlist]) self.kinetics.changeRate(2) for T, kexp in zip(Tlist, k0list): kact = self.kinetics.getRateCoefficient(T, 1e5) self.assertAlmostEqual(2 * kexp, kact, delta=1e-6 * kexp)
class TestPDepArrhenius(unittest.TestCase): """ Contains unit tests of the :class:`PDepArrhenius` class. """ def setUp(self): """ A function run before each unit test in this class. """ self.arrhenius0 = Arrhenius( A=(1.0e6, "s^-1"), n=1.0, Ea=(10.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.arrhenius1 = Arrhenius( A=(1.0e12, "s^-1"), n=1.0, Ea=(20.0, "kJ/mol"), T0=(300.0, "K"), Tmin=(300.0, "K"), Tmax=(2000.0, "K"), comment="""This data is completely made up""", ) self.pressures = numpy.array([0.1, 10.0]) self.arrhenius = [self.arrhenius0, self.arrhenius1] self.Tmin = 300.0 self.Tmax = 2000.0 self.Pmin = 0.1 self.Pmax = 10.0 self.comment = """This data is completely made up""" self.kinetics = PDepArrhenius( pressures=(self.pressures, "bar"), arrhenius=self.arrhenius, Tmin=(self.Tmin, "K"), Tmax=(self.Tmax, "K"), Pmin=(self.Pmin, "bar"), Pmax=(self.Pmax, "bar"), comment=self.comment, ) def test_pressures(self): """ Test that the PDepArrhenius pressures property was properly set. """ self.assertEqual(len(self.kinetics.pressures.value_si), 2) for i in range(2): self.assertAlmostEqual(self.kinetics.pressures.value_si[i] * 1e-5, self.pressures[i], 4) def test_arrhenius(self): """ Test that the PDepArrhenius arrhenius property was properly set. """ self.assertEqual(len(self.kinetics.arrhenius), 2) for i in range(2): self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, self.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, self.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, self.arrhenius[i].n.value, 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, self.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, self.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, self.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, self.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmin.value, self.arrhenius[i].Tmin.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Tmin.units, self.arrhenius[i].Tmin.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Tmax.value, self.arrhenius[i].Tmax.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Tmax.units, self.arrhenius[i].Tmax.units) self.assertEqual(self.kinetics.arrhenius[i].comment, self.arrhenius[i].comment) def test_Tmin(self): """ Test that the PDepArrhenius Tmin property was properly set. """ self.assertAlmostEqual(self.kinetics.Tmin.value_si, self.Tmin, 6) def test_Tmax(self): """ Test that the PDepArrhenius Tmax property was properly set. """ self.assertAlmostEqual(self.kinetics.Tmax.value_si, self.Tmax, 6) def test_Pmin(self): """ Test that the PDepArrhenius Pmin property was properly set. """ self.assertAlmostEqual(self.kinetics.Pmin.value_si * 1e-5, self.Pmin, 6) def test_Pmax(self): """ Test that the PDepArrhenius Pmax property was properly set. """ self.assertAlmostEqual(self.kinetics.Pmax.value_si * 1e-5, self.Pmax, 6) def test_comment(self): """ Test that the PDepArrhenius comment property was properly set. """ self.assertEqual(self.kinetics.comment, self.comment) def test_isPressureDependent(self): """ Test the PDepArrhenius.isPressureDependent() method. """ self.assertTrue(self.kinetics.isPressureDependent()) def test_getRateCoefficient(self): """ Test the PDepArrhenius.getRateCoefficient() method. """ P = 1e4 for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = self.arrhenius0.getRateCoefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e6 for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = self.arrhenius1.getRateCoefficient(T) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) P = 1e5 for T in [300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500]: k0 = self.kinetics.getRateCoefficient(T, P) k1 = math.sqrt(self.arrhenius0.getRateCoefficient(T) * self.arrhenius1.getRateCoefficient(T)) self.assertAlmostEqual(k0, k1, delta=1e-6 * k1) def test_fitToData(self): """ Test the PDepArrhenius.fitToData() method. """ Tdata = numpy.array([300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500], numpy.float) Pdata = numpy.array([1e4, 3e4, 1e5, 3e5, 1e6], numpy.float) kdata = numpy.zeros([len(Tdata), len(Pdata)], numpy.float) for t in range(len(Tdata)): for p in range(len(Pdata)): kdata[t, p] = self.kinetics.getRateCoefficient(Tdata[t], Pdata[p]) kinetics = PDepArrhenius().fitToData(Tdata, Pdata, kdata, kunits="s^-1") for t in range(len(Tdata)): for p in range(len(Pdata)): self.assertAlmostEqual( kinetics.getRateCoefficient(Tdata[t], Pdata[p]), kdata[t, p], delta=1e-6 * kdata[t, p] ) def test_pickle(self): """ Test that a PDepArrhenius object can be successfully pickled and unpickled with no loss of information. """ import cPickle kinetics = cPickle.loads(cPickle.dumps(self.kinetics)) Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) self.assertEqual(len(kinetics.pressures.value), Narrh) self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) self.assertEqual(self.kinetics.Tmax.units, kinetics.Tmax.units) self.assertAlmostEqual(self.kinetics.Pmin.value, kinetics.Pmin.value, 4) self.assertEqual(self.kinetics.Pmin.units, kinetics.Pmin.units) self.assertAlmostEqual(self.kinetics.Pmax.value, kinetics.Pmax.value, 4) self.assertEqual(self.kinetics.Pmax.units, kinetics.Pmax.units) self.assertEqual(self.kinetics.comment, kinetics.comment) def test_repr(self): """ Test that a PDepArrhenius object can be successfully reconstructed from its repr() output with no loss of information. """ kinetics = None exec("kinetics = {0!r}".format(self.kinetics)) Narrh = 2 self.assertEqual(len(self.kinetics.pressures.value), Narrh) self.assertEqual(len(kinetics.pressures.value), Narrh) self.assertEqual(len(self.kinetics.arrhenius), Narrh) self.assertEqual(len(kinetics.arrhenius), Narrh) for i in range(Narrh): self.assertAlmostEqual(self.kinetics.pressures.value[i], kinetics.pressures.value[i], 4) self.assertAlmostEqual(self.kinetics.arrhenius[i].A.value, kinetics.arrhenius[i].A.value, delta=1e0) self.assertEqual(self.kinetics.arrhenius[i].A.units, kinetics.arrhenius[i].A.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].n.value, kinetics.arrhenius[i].n.value) self.assertAlmostEqual(self.kinetics.arrhenius[i].T0.value, kinetics.arrhenius[i].T0.value, 4) self.assertEqual(self.kinetics.arrhenius[i].T0.units, kinetics.arrhenius[i].T0.units) self.assertAlmostEqual(self.kinetics.arrhenius[i].Ea.value, kinetics.arrhenius[i].Ea.value, 4) self.assertEqual(self.kinetics.arrhenius[i].Ea.units, kinetics.arrhenius[i].Ea.units) self.assertAlmostEqual(self.kinetics.Tmin.value, kinetics.Tmin.value, 4) self.assertEqual(self.kinetics.Tmin.units, kinetics.Tmin.units) self.assertAlmostEqual(self.kinetics.Tmax.value, kinetics.Tmax.value, 4) self.assertEqual(self.kinetics.Tmax.units, kinetics.Tmax.units) self.assertAlmostEqual(self.kinetics.Pmin.value, kinetics.Pmin.value, 4) self.assertEqual(self.kinetics.Pmin.units, kinetics.Pmin.units) self.assertAlmostEqual(self.kinetics.Pmax.value, kinetics.Pmax.value, 4) self.assertEqual(self.kinetics.Pmax.units, kinetics.Pmax.units) self.assertEqual(self.kinetics.comment, kinetics.comment)