From b351c624dab8129afe5ecbdf5b705367461ac3e4 Mon Sep 17 00:00:00 2001 From: "Bryan W. Weber" Date: Tue, 22 Dec 2015 16:47:53 -0500 Subject: [PATCH] [Test] Add tests for new Element class and functions --- interfaces/cython/cantera/test/test_thermo.py | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/interfaces/cython/cantera/test/test_thermo.py b/interfaces/cython/cantera/test/test_thermo.py index f3690373e..2ab67fca6 100644 --- a/interfaces/cython/cantera/test/test_thermo.py +++ b/interfaces/cython/cantera/test/test_thermo.py @@ -1009,3 +1009,68 @@ class TestMisc(utilities.CanteraTest): def test_stringify_bad(self): with self.assertRaises(AttributeError): ct.Solution(3) + + +class TestElement(utilities.CanteraTest): + @classmethod + def setUpClass(cls): + cls.ar_sym = ct.Element('Ar') + cls.ar_name = ct.Element('argon') + cls.ar_num = ct.Element(18) + + def test_element_weight(self): + self.assertNear(self.ar_sym.weight, 39.948) + self.assertNear(self.ar_name.weight, 39.948) + self.assertNear(self.ar_num.weight, 39.948) + + def test_element_symbol(self): + self.assertEqual(self.ar_sym.symbol, 'Ar') + self.assertEqual(self.ar_name.symbol, 'Ar') + self.assertEqual(self.ar_num.symbol, 'Ar') + + def test_element_name(self): + self.assertEqual(self.ar_sym.name, 'argon') + self.assertEqual(self.ar_name.name, 'argon') + self.assertEqual(self.ar_num.name, 'argon') + + def test_element_atomic_number(self): + self.assertEqual(self.ar_sym.atomic_number, 18) + self.assertEqual(self.ar_name.atomic_number, 18) + self.assertEqual(self.ar_num.atomic_number, 18) + + def test_element_name_not_present(self): + with self.assertRaises(RuntimeError): + ct.Element('I am not an element') + + def test_element_atomic_number_small(self): + with self.assertRaises(RuntimeError): + ct.Element(0) + + def test_element_atomic_number_big(self): + num_elements = ct.Element.num_elements_defined + with self.assertRaises(RuntimeError): + ct.Element(num_elements + 1) + + def test_element_bad_input(self): + with self.assertRaises(TypeError): + ct.Element(1.2345) + + def test_get_isotope(self): + d_sym = ct.Element('D') + self.assertEqual(d_sym.atomic_number, 1) + self.assertNear(d_sym.weight, 2.0) + self.assertEqual(d_sym.name, 'deuterium') + self.assertEqual(d_sym.symbol, 'D') + + d_name = ct.Element('deuterium') + self.assertEqual(d_name.atomic_number, 1) + self.assertNear(d_name.weight, 2.0) + self.assertEqual(d_name.name, 'deuterium') + self.assertEqual(d_name.symbol, 'D') + + def test_elements_lists(self): + syms = ct.Element.element_symbols + names = ct.Element.element_names + num_elements = ct.Element.num_elements_defined + self.assertEqual(len(syms), num_elements) + self.assertEqual(len(names), num_elements)