class MyTest(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.MP = MatrixPool() epsAxis = Axis({ 'name': 'eps', 'valueL': [10., 20., 30., 40., 50.], 'units': '', 'transform': 'log10' }) pcAxis = Axis({ 'name': 'pc', 'valueL': [100., 200., 300, 400], 'units': 'psia', 'transform': 'log10' }) mrAxis = Axis({ 'name': 'mr', 'valueL': [1, 2, 3], 'units': '', 'transform': '' }) for A in [epsAxis, pcAxis, mrAxis]: self.MP.add_axis(A) M = self.MP.add_matrix(name='cea_isp', units='sec', axisNameL=['eps', 'pc', 'mr']) for eps in epsAxis: for pc in pcAxis: for mr in mrAxis: M.setByName(pc=pc, eps=eps, mr=mr, val=eps + pc + mr) def tearDown(self): unittest.TestCase.tearDown(self) del (self.MP) def test_should_always_pass_cleanly(self): """Should always pass cleanly.""" pass def test_MP_existence(self): """Check that MP exists""" result = self.MP # See if the self.MP object exists self.assertTrue(result) def test_interp(self): """Check interpolation""" M = self.MP.get_matrix_by_name('cea_isp') val = M.interp(order=2, pc=200, eps=20, mr=2.0) self.assertAlmostEqual(val, 222.0, places=7) val = M.interp(order=2, pc=100, eps=10, mr=1.0) self.assertAlmostEqual(val, 111.0, places=7) val = M.interp(order=2, pc=150, eps=15, mr=1.5) self.assertAlmostEqual(val, 166.56398645, places=5)
class MyTest(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.MP = MatrixPool() epsAxis = Axis({'name':'eps', 'valueL':[10., 20., 30., 40., 50.], 'units':'', 'transform':'log10'}) pcAxis = Axis({'name':'pc', 'valueL':[100.,200.,300,400], 'units':'psia', 'transform':'log10'}) mrAxis = Axis({'name':'mr', 'valueL':[1,2,3], 'units':'', 'transform':''}) for A in [epsAxis, pcAxis, mrAxis]: self.MP.add_axis( A ) M = self.MP.add_matrix( name='cea_isp', units='sec', axisNameL=['eps','pc','mr'] ) for eps in epsAxis: for pc in pcAxis: for mr in mrAxis: M.setByName( pc=pc, eps=eps, mr=mr, val=eps+pc+mr ) def tearDown(self): unittest.TestCase.tearDown(self) del( self.MP ) def test_should_always_pass_cleanly(self): """Should always pass cleanly.""" pass def test_MP_existence(self): """Check that MP exists""" result = self.MP # See if the self.MP object exists self.assertTrue(result) def test_interp(self): """Check interpolation""" M = self.MP.get_matrix_by_name( 'cea_isp' ) val = M.interp(order=2, pc=200, eps=20, mr=2.0) self.assertAlmostEqual(val, 222.0, places=7) val = M.interp(order=2, pc=100, eps=10, mr=1.0) self.assertAlmostEqual(val, 111.0, places=7) val = M.interp(order=2, pc=150, eps=15, mr=1.5) self.assertAlmostEqual(val, 166.56398645, places=5)
pcAxis = Axis({ 'name': 'pc', 'valueL': [100., 200., 300, 400], 'units': 'psia', 'transform': 'log10' }) mrAxis = Axis({ 'name': 'mr', 'valueL': [1, 2, 3], 'units': '', 'transform': '' }) for A in [epsAxis, pcAxis, mrAxis]: MP.add_axis(A) M = MP.add_matrix(name='cea_isp', units='sec', axisNameL=['eps', 'pc', 'mr']) for eps in epsAxis: for pc in pcAxis: for mr in mrAxis: M.setByName(pc=pc, eps=eps, mr=mr, val=eps + pc + mr) print(M) print('_' * 55) newM = M.get_sub_matrix(pc=200.) print(newM) print('_' * 55) newM = M.get_sub_matrix(pc=300., eps=50.0) print(newM)
from m_pool.matrix_pool import MatrixPool from m_pool.axis_obj import Axis import itertools MP = MatrixPool(name='N2O4_MMH') epsAxis = Axis({'name':'eps', 'valueL':[10., 20., 30., 40., 50.], 'units':'', 'transform':'log10'}) pcAxis = Axis({'name':'pc', 'valueL':[100.,200.,300,400], 'units':'psia', 'transform':'log10'}) mrAxis = Axis({'name':'mr', 'valueL':[1,2,3], 'units':'', 'transform':''}) for A in [epsAxis, pcAxis, mrAxis]: MP.add_axis( A ) M = MP.add_matrix( name='cea_isp', units='sec', axisNameL=['eps','pc','mr'] ) for eps in epsAxis: for pc in pcAxis: for mr in mrAxis: M.setByName( pc=pc, eps=eps, mr=mr, val=eps+pc+mr ) print M print '_'*55 newM = M.get_sub_matrix( pc=200. ) print newM print '_'*55 newM = M.get_sub_matrix( pc=300., eps=50.0 ) print newM